加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – MVC EF Code首先一对一的关系错误

发布时间:2020-12-16 07:18:34 所属栏目:asp.Net 来源:网络整理
导读:我想要一份展台清单(在贸易展览会上)和参展商名单. 展台名单与参展商名单分开 – 但是,一旦注册,我希望参展商能够预订展位. 当他们选择/预订展台时 – 我希望能够在我的视图中列出展台,并展示已预订展台的相关参展商. 同样,我想在另一个视图中列出参展商,以
我想要一份展台清单(在贸易展览会上)和参展商名单.

展台名单与参展商名单分开 – 但是,一旦注册,我希望参展商能够预订展位.

当他们选择/预订展台时 – 我希望能够在我的视图中列出展台,并展示已预订展台的相关参展商.

同样,我想在另一个视图中列出参展商,以及他们预订的展位.

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

但是,当试图为Stand或Exhibitor添加控制器时,我收到以下错误:

我的模特是:

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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读