2012-03-05 2 views
1

У меня есть простой доступ к данным с DbContext EntityFramework 4.1, и у меня есть таблица пользователей, сопоставленная пользователям. Теперь я создаю UsersRepository, и у меня есть этот метод :EntityFramework 4.1 с кодом DbContext, который должен быть помещен в хранилище Сохранение метода сохранения и обновления

public bool Save(Users entity) 
{ 
    ///What should i put here to Save entity or update Same time ? 
} 

Интересно, что я должен поставить там, чтобы сохранить лицо, если его новое и обновление, если его нет, принимая внимание, что объект не может быть присоединен к контексту и т.д.

Примечание: - I не хотите создавать свойство для отображения ObjectContext из DbContext, как я это делал, выставляя objectContext для непосредственного прикрепления и проверки, если объект привязан, я не хочу этого делать, поскольку я думаю, что это не самая лучшая практика, поскольку DbContext должен заменить все это.

+0

Не могли бы вы немного рассказать о своей заметке об объектно-ориентированном объекте и каковы ваши проблемы/цели? –

ответ

-1

DbContext.SaveChanges();

MSDN Documentation

+0

Если объект не подключен, то это не будет работать :( – Stacker

+1

Не ответ. OP - это новое или обновление. –

1

Один простой шаблон, который может работать для вставки или обновления, чтобы предположить, что первичный ключ ноль означает, что объект является новым и должен быть добавлен, в противном случае она существует и должна обновляться. Например:

public void Save(Users entity) 
{ 
    context.Entry(entity).State = entity.Id == 0 
     ? EntityState.Added 
     : EntityState.Modified; 

    context.SaveChanges(); 
} 

Для получения более подробной информации см. http://blogs.msdn.com/b/adonet/archive/2011/01/29/using-dbcontext-in-ef-feature-ctp5-part-4-add-attach-and-entity-states.aspx.

+0

Что относительно непривязанных объектов? – Stacker

+0

Установка свойства State для Modified будет прикреплять объект, если он еще не присоединен а затем измените его состояние на Модифицированное. Аналогично, установка состояния для добавления добавит объект, если потребуется. –