Mar*_*ark 4 asp.net asp.net-mvc entity-framework model asp.net-mvc-3
我想要一份展台清单(在贸易展览会上)和参展商名单.
展台名单与参展商名单分开 - 但是,一旦注册,我希望参展商能够预订展位.
当他们选择/预订展台时 - 我希望能够在我的视图中列出展台,并展示已预订展台的相关参展商.
同样,我想在另一个视图中列出参展商,以及他们预订的展位.
所以我正在尝试建立一对一的关系(使用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; }
}
Run Code Online (Sandbox Code Playgroud)
我确定这与模型的"虚拟"部分有关.
任何人都可以帮助指出应该更新什么,以允许连接?
谢谢,
标记
EF不知道哪个实体是主体(父),哪个是依赖(子).您需要在应该首先出现的实体的项目上声明外键.您可以使用注释或流畅的映射来完成此操作.
注解
添加以下命名空间:
using System.ComponentModel.DataAnnotations.Schema;
Run Code Online (Sandbox Code Playgroud)
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; }
}
Run Code Online (Sandbox Code Playgroud)
流畅的映射
覆盖您班级中的OnModelCreating方法,DbContext包括:
modelBuilder.Entity<Stand>()
.HasOptional(s => s.Exhibitor)
.WithRequired(e => e.Stand);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5908 次 |
| 最近记录: |