鉴于这些实体由EF自动生成......(伪)
class CreditCard
{
int ID {get;set;}
string Number {get;set;}
}
class Person
{
EntityCollection<CreditCard> CreditCards {get; set;}
}
将断开连接的List合并到Person的CreditCards属性的最佳方法是什么。
将在基于UserInput的WebForm上构建List。该列表将包含新的CreditCards(添加),对现有CreditCards(更新)的更改,并且不包含用户已删除的CreditCards。
接下来(我需要帮助的挑战)是取出断开连接的List并将其与Person实例的CreditCards属性合并,
合并过程将(A)向列表中添加新实例,(B)更新现有实例和(C)删除断开连接列表中不存在的实例。
是否存在EF设计用于处理此问题的实际方法,还是手动过程?如果是手动的,那么以可以跨实体重用的通用方式实现此目的的最佳方法是什么?
答案 0 :(得分:2)
显然,我来这里的派对已经很晚了,但除非我弄错了,你的信用卡列表creditCardList
的类型为List<CreditCard>
,你想要的就是类似的到:
Person yourPerson = Context.Persons
.Include("CreditCards")
.First<Person>(p => p.PersonId == yourPersonId);
yourPerson.CreditCards.Clear();
creditCardList.ForEach(cc => yourPerson.CreditCards.Add(cc));
Context.SaveChanges();
我不确定这是否有用,或者是否还有其他需要。