在实体框架中使用不同名称映射外键两次
本文关键字:映射 两次 框架 实体 | 更新日期: 2023-09-27 17:57:48
我有一个MasterConfig表,我想在其中以CodeValue格式存储我的值。即
ID CODE VALUE
1. BusinessType IT
2. BusinessType Marketing
3. ContractType General
4. ContractType Custom
因此,要获得基于CODE字段的记录。例如,getCodeValue/CompactType
现在,我有一个Contract表,我必须将这些字段映射为外键。我的合同模型看起来像:
public class Contract
{
[Key]
public int ID{get; set;}
public string Name{get; set;}
[ForeignKey("CodeValue")]
public int BusinessTypeID{get; set;}
[ForeignKey("CodeValue")]
public int ContractTypeID{get; set;}
public virtual CodeValue CodeValue {get; set;}
}
在创建带有视图的控制器时,我收到错误"无法检索合同模型的元数据。无法映射字段"。
请给我一个实体框架(ASP.NET MVC)中的主配置关系的解决方案?
它需要根据Contract
类中的导航属性进行映射,如下所示:
public class Contract
{
[Key]
public int ID { get; set; }
public string Name { get; set; }
[ForeignKey("BusinessType")]
public int BusinessTypeID { get; set; }
[ForeignKey("ContractType")]
public int ContractTypeID { get; set; }
public virtual CodeValue BusinessType { get; set; }
public virtual CodeValue ContractType { get; set; }
}