C# Linq更新了许多关系
新的Linq到实体。我正在使用实体框架和linq。在我的数据库中,我有一些类似于Cars、Users、UserCars的东西,其中UserCars持有User和Cars的ID。标准的东西 EF将其映射到汽车和用户对象 现在一个用户现在有很多车。通过我的应用程序,我得到了一个新的汽车ID列表 我需要用当前用户的新汽车列表更新UserCars表 因此,基本上需要做的是,删除用户的当前车辆,并插入新的车辆ID/用户ID列表C# Linq更新了许多关系,c#,.net,linq,entity-framework,linq-to-entities,C#,.net,Linq,Entity Framework,Linq To Entities,新的Linq到实体。我正在使用实体框架和linq。在我的数据库中,我有一些类似于Cars、Users、UserCars的东西,其中UserCars持有User和Cars的ID。标准的东西 EF将其映射到汽车和用户对象 现在一个用户现在有很多车。通过我的应用程序,我得到了一个新的汽车ID列表 我需要用当前用户的新汽车列表更新UserCars表 因此,基本上需要做的是,删除用户的当前车辆,并插入新的车辆ID/用户ID列表 使用linq to实体最简单的方法是什么?用户实体应该有一个Cars属性。您只
使用linq to实体最简单的方法是什么?用户实体应该有一个
Cars
属性。您只需清除该集合,然后添加新车以反映新状态,即有点像这样:
User myUser = context.Users.First();
var carCollection = context.Cars.Where( c => carIdCollection.Contains(c.Id));
myUser.Cars.Clear();
foreach(Car car in carCollection)
myUser.Cars.Add(car);
...
context.SaveChanges();
User
实体应具有Cars
属性。您只需清除该集合,然后添加新车以反映新状态,即有点像这样:
User myUser = context.Users.First();
var carCollection = context.Cars.Where( c => carIdCollection.Contains(c.Id));
myUser.Cars.Clear();
foreach(Car car in carCollection)
myUser.Cars.Add(car);
...
context.SaveChanges();
您可以使用泛型方法来处理您传递给它的任何类型:
Protected Sub UpdateManyToMany(Of T As Class)(database as SomeEntities, collection As ICollection(Of T), idList As List(Of Integer))
'update a many to many collection given a list of key IDs
collection.Clear()
Dim source = database.Set(Of T)()
If idList IsNot Nothing Then
For Each i As Integer In idList
Dim record = source.Find(i)
collection.Add(record)
Next
End If
End Sub
您可以使用泛型方法来处理您传递给它的任何类型:
Protected Sub UpdateManyToMany(Of T As Class)(database as SomeEntities, collection As ICollection(Of T), idList As List(Of Integer))
'update a many to many collection given a list of key IDs
collection.Clear()
Dim source = database.Set(Of T)()
If idList IsNot Nothing Then
For Each i As Integer In idList
Dim record = source.Find(i)
collection.Add(record)
Next
End If
End Sub
谢谢,我就是想不起来该去哪里。应该工作得很好,谢谢,我只是不知道该去哪里。应该工作完美