我已经从我的图表中生成了我的表:
Database schema但是我不知道为什么,EF会在起源模型中生成这个:
public virtual ICollection<Container> Containers { get; set; }在Container模型中:
public int OriginID { get; set; }
public virtual Origin Origin { get; set; }在上下文中:
modelBuilder.Entity<Origin>()
.HasMany(e => e.Containers)
.WithRequired(e => e.Origin)
.WillCascadeOnDelete(false);但Container对象只能有一个Origin对象。
在原始对象中只有一个对象实例的情况下,如何删除集合?
因为实际上我的Restier服务正在检索只有一个容器的集合的origins对象。
所以这些收藏是完全无用的。
你们有什么想法吗?
非常感谢
发布于 2016-03-31 18:52:07
因为起源可能与许多容器有关-他们不知道这一点。你所拥有的是一对多(容器)。假设我的源ID为1,容器A的originID为1,什么会阻止我添加具有相同originID的容器B?如果你坚持一对一的关系,试着给两个模型都添加关键字-- origin应该知道它只与一个容器相关,反之亦然。
TD;DR:将ContainerID添加到源表。
发布于 2016-03-31 22:45:24
我认为添加一对一关系的最好方法是拥有一个同时也是外键的主键。
(源Id应引用容器id)
https://stackoverflow.com/questions/36331172
复制相似问题