我有两个班级:
public class RichMan
{
public string ID {get;set;}
List<Car> _cars=new List<Car>();
{
public List<Car> Cars
{
get
{
return this._cars;
}
set
{
this._cars = value;
NotifyChanged("Email");
}
}
}
和
public class Car
{
public string ID {get;set;}
}
和3个表:
RichMan
ID int
Cars:
ID int
and CarsOfRichmen
idcar int (FK)
idrichman (FK)
如果收集richamn的汽车会改变在数据库上的操作方式吗?
从CarsOfRichmen中删除所有记录,其中idrichman是我的richam的id,然后在foreach中向CarsOfRichmen添加实际内容?
这是好的做法吗?
答案 0 :(得分:3)
不,这不是一个好习惯。
汽车可以有其他相关信息;汽车的变化可以触发其他行动。
您必须添加/删除/更新相关汽车[编辑]和/或CarsOfRichmen ......
答案 1 :(得分:2)
我至少知道3种模式:
1)根据Pascal - 分析“之前”和之后的场景,然后根据需要将相关的delta应用于链接的数据(插入,更新和删除)。
2)按照你的建议(但不是汽车)删除链接是一种非常常见的模式。但是,您应该具有某种形式的日志记录/审计功能,以便您可以重新创建发生的事情。
3)另一种常见模式是在链接上添加日期/日期到范围,并以这种方式对其进行版本化。然而,由于链接堆积得非常快,性能可能会降低。