EF4:GetObjectStateEntries 的 OfType 过滤器
我在数据上下文中重写 SaveChanges 方法,并具有以下代码:
IEnumerable<BaseEntity> newEntries = ObjectStateManager.GetObjectStateEntries(EntityState.Added).OfType<BaseEntity>();
在我的模型中,所有业务对象都派生自 BaseEntity。当我将新的“投资”(也源自 BaseEntity!)添加到我的数据上下文时,上面的代码不会在结果集中显示该实体。
然而,GetObjectStateEntries(EntityState.Added)
返回一个 Investment
类型的实体。
为什么 OfType<>
无法识别对象是否派生?
I override the SaveChanges method in my datacontext and have the following code:
IEnumerable<BaseEntity> newEntries = ObjectStateManager.GetObjectStateEntries(EntityState.Added).OfType<BaseEntity>();
In my model all businessobjects derive from BaseEntity. When I add a new 'Investment' (also derived from BaseEntity!) to my datacontext the code above will not show this entity in the resultset.
GetObjectStateEntries(EntityState.Added)
however returns one entity which is of type Investment
.
Why doesn't OfType<>
recognize if an object is derived?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是因为此查询返回
ObjectStateEntry
类型的对象,并且该对象的实例具有一个属性Entity
来保存您的实体对象。试试这个:
That because this query returns objects of type
ObjectStateEntry
and instance of this object has a propertyEntity
which holds your entity object.Try this: