Проверьте, является ли сущность новой в EF 4.0 - PullRequest
1 голос
/ 12 марта 2011

Мне нужно проверить, является ли объект новым. Если бы это был первичный ключ типа int / identity, я мог бы просто проверить, имеет ли свойство для ключа значение по умолчанию ... но в случае с Guid я не могу этого сделать. Могу ли я что-нибудь сделать с ObjectContext или ObjectStateManager, чтобы он проверил и определил, является ли рассматриваемая сущность новой или измененной?

Ответы [ 3 ]

2 голосов
/ 12 марта 2011

ObjectStateManager.GetObjectStateEntry

using (MyContext context = new MyContext())
{
    ObjectStateManager objectStateManager = context.ObjectStateManager;
    EntityState state = objectStateManager.GetObjectStateEntry(obj).State;
}
0 голосов
/ 12 марта 2011

Если это Guid со значением NULL, вы можете проверить, имеет ли оно значение:

if (entity.MyGuid.HasValue)
{
  // hooray!
}

Если оно не имеет значения NULL, проверьте значение по умолчанию или пустой GUID:

if (entity.MyGuid != default(Guid))
{
  // hooray!
}

if (entity.MyGuid != Guid.Empty)
{
  // hooray!
}
0 голосов
/ 12 марта 2011

В случае с Guid вы можете сделать это

if(foo.GuidProperty == default(Guid))
{

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...