我想在使用 LINQ(特别是 LINQ-to-entities)的同时实现 MVC。我这样做的方法是让控制器使用 LINQ 生成(或调用生成的东西)结果集,然后将其返回到视图以显示数据。问题是,如果我这样做:
return (from o in myTable select o);
All这些列是从数据库中读取的,即使是我不想要的列(可能有几十个)。而且 - 更重要的是 - 我can't做这样的事情:
return (from o in myTable select new { o.column });
因为没有办法使匿名类型类型安全!我确信在 3.5 中没有好的、干净的方法来做到这一点(this不干净...),但4.0呢?有什么计划,甚至提议吗?如果没有像 duck-typing-for-LINQ 这样的东西,或者类型安全的匿名返回值(在我看来,编译器当然应该能够做到这一点),那么将控制器与视图完全分离似乎几乎是不可能的。
使用视图模型层。您的视图必须知道它将显示什么。我猜想创建一个仅格式化多维数据数组的视图是可能的,但这并不是采用 MVC 解决方案的最佳理由。但是,您可以使用匿名对象填充视图模型,以便在视图中使用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)