mad*_*ode 6 entity-framework table-per-type
我们首先使用EF 4.3代码并且具有如下对象模型:
class Content { }
class Product:Content { }
class News:Content { }
Run Code Online (Sandbox Code Playgroud)
这些映射为每种类型的表.
在某些情况下,我只想加载属于基表的列,比如说所有内容标题的列表.但是像一个查询
from c in Content
where c.IsDeleted == false
select c
Run Code Online (Sandbox Code Playgroud)
导致一些非常讨厌的SQL与其他两个表的连接.有没有办法强制EF只从基表执行选择而不连接到其他表?
TPT 存在问题,而 EF 生成的查询通常效率非常低。此外,您的期望可能是不正确的。Linq-to-entities 始终返回实体的真实类型。Content如果记录实际上是实体,则它无法返回类型的实例Product。您的查询只能有两个含义:
Content该查询将返回,Product和实例的枚举News。Content实例 - 这可能必须再次执行联接以正确实例化仅直接映射到的记录(与和Content无关)。没有记录映射到枚举或将在枚举中返回。此查询无法使用 Linq-to-entities - 您需要使用 ESQL 和运算符。ProductNewsProductNewsOFTYPE ONLY您可以尝试以下几件事:
Content-Product并且也是内容,因此如果您从 Linq-to-entities 查询News返回实例,您将永远不会得到没有连接的查询Content| 归档时间: |
|
| 查看次数: |
1213 次 |
| 最近记录: |