0

我已经从我的图表中生成了我的表格:

数据库模式 但我不知道为什么,EF 会在 Origin 模型中生成它:

public virtual ICollection<Container> Containers { get; set; }

在容器模型中:

public int OriginID { get; set; }
public virtual Origin Origin { get; set; }

在上下文中:

modelBuilder.Entity<Origin>()
            .HasMany(e => e.Containers)
            .WithRequired(e => e.Origin)
            .WillCascadeOnDelete(false);

但是一个容器对象只能有一个 Origin 对象。

如何删除集合以使我的对象在原始对象中只有一个实例?

因为实际上我的 Restier 服务正在使用只有一个容器的集合来检索我的原始对象。

所以收藏完全没用。

你们有什么想法吗?

非常感谢

4

2 回答 2

0

因为起源很可能与很多容器有关——他们不知道。你所拥有的是一个(起源)到多个(容器)。假设我有 ID 为 1 的原点和带有 originID 1 的容器 A。什么会阻止我添加具有相同 originID 的容器 B?如果您坚持 1 对 1 的关系,请尝试向两个模型添加键 - 来源应该知道它只与一个容器相关,反之亦然。

TD;DR:将 ContainerID 添加到 Origin 表。

于 2016-03-31T10:52:07.230 回答
0

我认为添加一对一关系的最佳方法是拥有一个主键,它也是一个外键。

(Origin Id 应该引用 Container id)

于 2016-03-31T14:45:24.393 回答