假设我想在我的应用程序开发的某些部分使用Linq to Entity查询将数据提取到匿名对象(即从两个或多个表中获取数据并将其存储在变量中)。后来我需要一个Razor View来访问这个获取/匿名数据。我该怎么办?
我认为设计另一个包含匿名类型属性的相应属性的ViewModel并使view / razor强烈地键入该ViewModel?这是在EF 4.1中使用匿名类型的正确方法吗?即对于每个匿名类型,创建一个ViewModel并将Fetched数据存储到它的对象中。
答案 0 :(得分:4)
匿名类型不适用于方法范围之外,因此它们通常只是一次性类型,只能在该方法中使用。
我倾向于通过ViewModel将数据加载到常规类中,以将Model与Views完全分离。我将使用自定义类来保存获取的数据,然后在Controller中使用该类填充ViewModel,并为ViewModel创建一个强类型的剃刀视图。 这有点不那么紧凑,但有更好的关注点分离。