MERGE в Entity Framework - PullRequest
       15

MERGE в Entity Framework

10 голосов
/ 30 апреля 2011

Есть ли способ вызвать команду MERGE T-Sql из .NET Entity Framework 4?

1 Ответ

10 голосов
/ 30 апреля 2011

Нет, там нет такой встроенной функциональности - вы должны создать свой собственный.Очень распространен, например, такой подход, как:

public void SaveOrUpdate(MyEntity entity)
{
    if (entity.Id == 0)
    {
        context.MyEntities.AddObject(entity);
    }
    else
    {
        context.MyEntities.Attach(entity);
        context.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);
    }

    // You can call SaveChanges here or you can call it separately after multiple changes
}

Это пример работы с отсоединенным объектом, который автоматически генерирует Id в базе данных (IDENTITY).Идентификатор по умолчанию для новой сущности всегда равен 0, поскольку при сохранении изменений будет назначено реальное значение.

...