1
元素添加到其他現有實體
讓我們這樣的場景:使用實體框架
- 我想添加一個任務到項目。
- 該項目已經存在。
- 任務將作爲新實體添加並附加到項目中。
- 一個項目可以有一個或多個任務。
這是我做的,現在我的倉庫方式:
public void AddTaskToProject(Project ProjectToUpdate,Task TaskToAdd)
{
using (var context = new myContext())
{
var project= context.Projects.First(x => x.Id == projectToUpdate.Id);
project.Tasks.Add(taskToAdd);
context.Tasks.Add(taskToAdd);
SaveContextChange(context);
}
}
是否有任何其他的方式,以避免像我一樣到數據庫儘可能多的電話嗎?
對我來說,理想的是更新項目,然後只調用項目實體的更新?有沒有辦法做到這一點 ?
這是一般的更新我:
public virtual void Update(params T[] items)
{
using (var context = new MyContext())
{
foreach (T item in items)
{
context.Entry(item).State =EntityState.Modified;
}
context.SaveChanges();
}
}