C# LINQ到实体-分配多对多关系
我需要写一些类似下面的东西,它创建了一些Table1 Table2关系C# LINQ到实体-分配多对多关系,c#,entity-framework-4,linq-to-entities,many-to-many,C#,Entity Framework 4,Linq To Entities,Many To Many,我需要写一些类似下面的东西,它创建了一些Table1 Table2关系 table1.Table2 = context.Table2.Where(t => t.ID.In(arrayOfIDs)) 表1和表2具有多对多关系,例如,它们在数据库中有一个联接表。我该怎么做 编辑: 一个更完整的例子: internal void UpdateMedia(int mediaID, int[] catagoryIDs) { using (Data.EFEntities context =
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顺便说一句)这样的东西可能会奏效:
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();
}
}
你是在问怎样才能加入?请澄清更多我希望将指定的表2行分配给表1。是的,看起来这就是方法。在尝试添加代码以删除现有类别并避免添加已经存在的类别之后,我放弃了,并编写了一个存储过程来完成这项工作。使用实体框架做这样的事情有多尴尬,这让我很恼火。