实体框架:多对多关系的ID列表

时间:2016-02-10 14:21:24

标签: .net entity-framework

我有一个方法可以获得要分配给多对多关系的实体ID列表。

在这种情况下,添加EntityA和EntityB之间的关系的最佳做法是什么?我是否加载列表B的每个元素并将其添加到A中,还是可以在不加载entites的情况下附加它?

sudo service tomcat7 start
sudo service tomcat7 stop

此外,如果我使用存储库,那会是什么方法?

谢谢和问候!

1 个答案:

答案 0 :(得分:0)

有可能甚至建议在EntityAEntityB之间建立连接而不从数据库加载后者。您可以通过为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();
}