我有一个方法可以获得要分配给多对多关系的实体ID列表。
在这种情况下,添加EntityA和EntityB之间的关系的最佳做法是什么?我是否加载列表B的每个元素并将其添加到A中,还是可以在不加载entites的情况下附加它?
sudo service tomcat7 start
sudo service tomcat7 stop
此外,如果我使用存储库,那会是什么方法?
谢谢和问候!
答案 0 :(得分:0)
有可能甚至建议在EntityA
和EntityB
之间建立连接而不从数据库加载后者。您可以通过为EntityB
创建存根实体并将其作为Unchanged
附加到上下文来执行此操作:
public void AddToNewA(string name, List<int> listOfBIds)
{
var a = new EntityA();
a.Name = name;
foreach(int id in listOfBIds)
{
var b = new EntityB { ID = id };
context.Entry(b).State = System.Data.Entity.EntityState.Unchanged;
a.EntityBs.Add(b);
}
context.EntityAs.Add(a);
context.SaveChanges();
}