实体进入意想不到的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();
...
}
但真正的我。
but real I have
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屋!
查看全文