实体框架:如何从 L2E 返回基本类型
Posted
技术标签:
【中文标题】实体框架:如何从 L2E 返回基本类型【英文标题】:Entity Framework: how to return a base type from L2E 【发布时间】:2010-09-11 15:17:38 【问题描述】:考虑以下架构:
基础对象“实体” 派生对象“Entry:Base” 以及进一步派生的对象“CancelledEntry:Entry”在 EntitySQL 中,我可以编写以下代码:
[...] where it is of (only MyEntities.Entry) [...]
只返回 Entry 类型的对象,不返回 Entity 或 CancelledEntry。
在 linq to sql 中,以下命令将返回 Entry 和 CancelledEntry 类型的对象。
EntityContext.EntitySet.OfType<Entry>()
仅返回 Entry 类型的对象的语法/函数是什么?
【问题讨论】:
【参考方案1】:为什么不在 IQueryable
这是一个如何重用 linq 查询片段的示例。在 IQueryable
【讨论】:
【参考方案2】:好的,我找到了部分解决方案:
EntityContext.EntitySet.OfType<Entry>().Where( obj => !(obj is CancelledEntry) )
然而这很糟糕,因为如果我创建一个新的派生对象,我必须进入所有查询并专门添加一个条件来删除它。
必须有更好的解决方案
【讨论】:
以上是关于实体框架:如何从 L2E 返回基本类型的主要内容,如果未能解决你的问题,请参考以下文章