這是我第一次更新EF表上的相關數據。更新相關數據EF數據庫優先
var _agent = _unitOfWork.AgentsRepository.GetByID(agent.AgentId);
_agent.map_Agent_Language = new System.Collections.Generic.HashSet<map_Agent_Language>();
var numlist = new System.Collections.Generic.List<int>() { 1,2,3,4,5};
foreach (var item in numlist)
{
_agent.map_Agent_Language.Add(new map_Agent_Language() { AgentLanguageId = 0, AgentId = agent.AgentId, LanguageId = Convert.ToInt32(item) });
}
_unitOfWork.AgentsRepository.Update(_agent);
int result = _unitOfWork.Save();
return (result > 0);
這些是使用的方法。
public virtual void Update(TEntity entityToUpdate)
{
dbSet.Attach(entityToUpdate);
context.Entry(entityToUpdate).State = EntityState.Modified;
}
public int Save()
{
return _context.SaveChanges();
}
編輯:
此代碼插入一個新之前插入對錶map_agent_language而不是刪除舊數據DATAS。
如何強制EF在插入前先刪除它?
TNX ..
PS是否有更新的DB頭相關DATAS更好的辦法?感謝
檢查傳遞不爲null。如果它不爲空,那麼檢查它應該是標識列,在這種情況下,你不應該通過它。 –
@GirishSakhare嗨,親切地檢查我編輯的問題tnx。 –