EF4:用于GetObjectStateEntries的OfType过滤器

问题描述

|| 我在我的数据上下文中覆盖了SaveChanges方法,并具有以下代码:
IEnumerable<BaseEntity> newEntries = ObjectStateManager.GetObjectStateEntries(EntityState.Added).OfType<BaseEntity>();
在我的模型中,所有业务对象均源自BaseEntity。当我在我的数据上下文中添加新的\'Investment \'(也来自BaseEntity!)时,上面的代码将不会在结果集中显示此实体。 但是,
GetObjectStateEntries(EntityState.Added)
返回一个类型为
Investment
的实体。 为什么
OfType<>
不能识别对象是否派生?     

解决方法

那是因为此查询返回类型为“ 4”的对象,并且该对象的实例具有属性“ 5”,该属性保存您的实体对象。 尝试这个:
var IEnumerable<BaseEntity> newEntries = ObjectStateManager
    .GetObjectStateEntries(EntityState.Added)
    .Select(e => e.Entity)
    .OfType<BaseEntity>();
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...