我需要检查实体是否是新的。如果它是一个int / identity主键,我可以检查该键的属性是否具有默认值...但是在Guid的情况下,我不能这样做。有什么我可以用ObjectContext或ObjectStateManager来检查和确定有问题的实体是新的还是修改过的?
答案 0 :(得分:2)
ObjectStateManager.GetObjectStateEntry
using (MyContext context = new MyContext())
{
ObjectStateManager objectStateManager = context.ObjectStateManager;
EntityState state = objectStateManager.GetObjectStateEntry(obj).State;
}
答案 1 :(得分:0)
如果是Guid,你可以这样做
if(foo.GuidProperty == default(Guid))
{
}
答案 2 :(得分:0)
如果它是可以为空的Guid,您可以检查它是否有值:
if (entity.MyGuid.HasValue)
{
// hooray!
}
如果它不可为空,请检查默认值或空GUID:
if (entity.MyGuid != default(Guid))
{
// hooray!
}
if (entity.MyGuid != Guid.Empty)
{
// hooray!
}