意外GetType()实体输入结果 [英] unexpected GetType() result for entity entry
本文介绍了意外GetType()实体输入结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我迭代 ObjectStateEntries
我预计 [t]
变量名将为 MY_ENTITY
While I iterating through ObjectStateEntries
I expected [t]
variable name will be MY_ENTITY
foreach (ObjectStateEntry entry in context.ObjectStateManager.GetObjectStateEntries(EntityState.Deleted))
{
Type t = entry.Entity.GetType();
...
}
但实际我有
System.Data.Entity.DynamicProxies.MY_ENTITY_vgfg7s7wyd7c7vgvgv.....
如何确定可以将当前条目转换为 MY_ENTITY
类型?
How can I determine can I cast current entry to MY_ENTITY
type?
推荐答案
您可以通过
ObjectContext.GetObjectType(entity.GetType())
这是 ObjectContext $的静态方法c $ c>
,所以你可以在 DbContext
环境中轻松使用。
This is a static method of ObjectContext
, so you can readily use in in a DbContext
environment.
如果某些原因您需要实体作为其原始类型,您可以使用模式
If for some reason you need the actual entity as its original type you can use the pattern
var entity = entry.Entity as MyEntity;
if (entity != null)
{
...
}
这比
if (entry.Entity is MyEntity)
{
var entity = (MyEntity)entry.Entity;
...
}
因为后一个代码段将对象投射两次。
because the latter snippet casts the object twice.
这篇关于意外GetType()实体输入结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文