LINQ to Entities - 分配多对多关系

时间:2011-02-16 15:29:24

标签: c# entity-framework-4 linq-to-entities many-to-many

我需要写下面的内容,这会创建一些Table1< ==>表2关系。

table1.Table2 = context.Table2.Where(t => t.ID.In(arrayOfIDs))

表1和表2具有多对多的关系,例如,它们在数据库中具有连接表。我该怎么做?

修改

更全面的例子:

internal void UpdateMedia(int mediaID, int[] catagoryIDs)
{
    using (Data.EFEntities context = new Data.EFEntities())
    {
        Data.Media media = context.Media.Single(m => m.MediaID == mediaID);

        media.Category = context.Category.Where(cat => cat.CategoryID.In(catagoryIDs));

        context.SaveChanges();
    }
}

这不起作用,但应该显示我想要实现的目标。 (实体框架4顺便说一句)

1 个答案:

答案 0 :(得分:1)

也许这样的事情会起作用:

internal void UpdateMedia(int mediaID, int[] catagoryIDs)
{
    using (Data.EFEntities context = new Data.EFEntities())
    {
        Data.Media media = context.Media.Single(m => m.MediaID == mediaID);

        foreach(var category in context.Category.Where(cat => catagoryIDs.Contains(cat.CategoryID))
        {
            media.Categories.Add(category);                
        }

        context.SaveChanges();
    }
}