我正在使用代码优先的实体框架,我知道您可以通过向每个对象添加一个 ICollection 轻松地在 ObjectA 和 ObjectB 之间创建多对多关系;EF 会在后台自动创建链接表。
public class ObjectA {
public ICollection<ObjectB> ObjectsB { get; set; }
}
public class ObjectB {
public ICollection<ObjectA> ObjectsA { get; set; }
}
现在我需要这个关系的附加属性,所以我制作了自己的链接表
public class ObjectA {
public ICollection<ObjectA_ObjectB> AtoB { get; set; }
}
public class ObjectB {
public ICollection<ObjectA_ObjectB> BtoA { get; set; }
}
public class ObjectA_ObjectB {
public ObjectA A { get; set; }
public ObjectB B { get; set; }
public DateTime MyStartDate { get; set; }
}
这很好用,但最大的损失是我现在在我的实体中不再有 ObjectB 和 ObjectA 的直接集合,即使关系仍然相同,只是有一个显式链接表。
我真的希望我的直接收藏回来。是否有某种方法(使用模型构建器或数据注释?)来结合上述两种方法?