我们来看看这个场景:
这就是我现在在我的存储库中执行此操作的方式:
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();
}
}
答案 0 :(得分:0)
您可以尝试:
public void AddTaskToProject(Project projectToUpdate,Task taskToAdd)
{
using (var context = new myContext())
{
var project = new Project() { ProjectId = projectToUpdate.Id };
context.Projects.Attach(project);
project.Tasks.Add(taskToAdd);
context.SaveChanges();
}
}