我们正在调查实体框架,看它是否能满足我们的特殊需求。这是我感兴趣的场景:
我有一个大表(我们称之为VeryWideRecord),它有许多列,并且它有一个相应的业务对象(它也称为VeryWideRecord)。我希望能够在我的数据库中查询VeryWideRecord业务对象,但只能获得基础SQL返回的某些列的值。我可以使用实体框架吗?
我不确定是否可以使用Entity Framework的表拆分功能来完成,因为应用程序需要能够(在运行时)更改所请求的列。这样做的原因是我们正在努力减少通过网络传输的信息量。
我看到如何使用NHibernate(example)完成此操作,但我如何使用实体框架执行此操作?
答案 0 :(得分:0)
看起来你可以用实体SQL实现你想要的东西。以下是链接:
答案 1 :(得分:0)
像这样(在VB.NET中:
Dim pl As New List(Of VeryWideRecord)(
(From p In db.VeryWideRecords
Select New With {.RecID = p.RecID}
).ToList().Select(
Function(r)
Return New VeryWideRecord With {.RecID = r.RecID}
End Function))
有了这个,你有一些编译时检查。但是如果你想真正动态地做到这一点,那么eSQL可能更合适。 而且,它不是真正的实体框架,而是实现技巧的lambda表达式。