gpt4 book ai didi

asp.net - MVC EF代码第一个一对一关系错误

转载 作者:行者123 更新时间:2023-12-02 10:11:12 24 4
gpt4 key购买 nike

我想要一份(贸易展览会上的)展位 list 和参展商 list 。

展位列表与参展商列表是分开的 - 但是,一旦注册,我希望参展商能够预订展位。

当他们选择/预订展位时 - 我希望能够列出我认为的展位,并显示已预订展位的相关参展商。

同样,我想以另一个 View 列出参展商以及他们预订的展位。

所以我尝试建立一对一的关系(使用 EF CodeFirst)。

但是,当尝试为展台或参展商添加 Controller 时,我收到以下错误:

enter image description here

我的模型是:

 public class Stand
{
public int StandID { get; set; }
public string Description { get; set; }
public bool Booked { get; set; }
public int ExhibitorID { get; set; }
public virtual Exhibitor Exhibitor { get; set; }

}

public class Exhibitor
{
public int ExhibitorID { get; set; }
public string Company { get; set; }
public int StandID { get; set; }
public virtual Stand Stand { get; set; }

}

我确定这与模型的“虚拟”部分有关。

任何人都可以帮忙指出应该更新什么以允许连接吗?

谢谢,

标记

最佳答案

EF 不知道哪个实体是主体(父实体),哪个实体是从属实体(子实体)。您需要在应该首先出现的实体的项目上声明外键。您可以通过注释或流畅的映射来完成此操作。

注释

添加以下命名空间:

using System.ComponentModel.DataAnnotations.Schema;

使用以下注释来注释您的 Stand 类:

public class Stand
{
[ForeignKey("Exhibitor")]
public int StandID { get; set; }
public string Description { get; set; }
public bool Booked { get; set; }
public int ExhibitorID { get; set; }
public virtual Exhibitor Exhibitor { get; set; }

}

流畅的映射

重写 DbContext 类中的 OnModelCreating 方法以包含:

modelBuilder.Entity<Stand>()
.HasOptional(s => s.Exhibitor)
.WithRequired(e => e.Stand);

关于asp.net - MVC EF代码第一个一对一关系错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12122450/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com