【发布时间】:2017-10-23 23:38:54
【问题描述】:
是否有一种简单的方法来处理仅在某些时候映射的属性?例如:
我有一个产品表和产品实体。大多数时候我使用 LINQ to SQL 来执行相当于:
select * from products where...
但是,偶尔,我手动编写的 SQL 查询更像:
select products.*, someOtherVal, anotherVal from products join....
据我所知,我无法将someOtherVal 和anotherVal 添加到我的实体中,因为它们并不总是映射到列。
注意:我意识到正确设置我的所有实体和关系而不使用 Entity.SqlQuery() 可能会更好。我只是想知道是否有一种快速的方法可以实现我现在的目标。稍后我会在继续将我的应用程序转换为 EF 时进行改进。
【问题讨论】:
-
你在寻找类似this的东西
-
不,连接不是问题。我需要一种方法来处理有时只包含在结果集中的列的映射。
-
不,这不可能,所以最好按照你现在提到的方式开始。当然,您可以创建和使用单独的非实体类(又名 DTO)并使用
DbContext.Database.SqlQuery<T>方法将其投影到其中。 -
@IvanStoev 好的,感谢您的信息!
标签: c# vb.net entity-framework linq