LINQ to Entities - присваивание многим отношениям - PullRequest
0 голосов
/ 16 февраля 2011

Мне нужно написать что-то вроде следующего, что создаст некоторые отношения Table1 <==> Table2.

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

Table1 и Table2 имеют отношение многие ко многим, например, они имеют соединительную таблицу вбаза данных.Как мне это сделать?

edit:

Более полный пример:

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();
    }
}

Это не работает, но должно показать, что япытаюсь добиться.(Entity Framework 4 между прочим)

1 Ответ

1 голос
/ 16 февраля 2011

Может быть, что-то вроде этого будет работать:

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();
    }
}
...