[英]MVC - EF - Multiple Foreign Key Mapping
抱歉,如果已经回答了,我找不到适合我情况的答案。
我有一个实体类和一个视图模型。 示例如下:
实体:
public class Data
{
[Key, Column(Order = 0)]
public int ID { get; set; }
[Column(Order = 1)]
public Q1Values Q1 { get; set; }
[Column(Order = 2)]
public Q1Values Q2 { get; set; }
}
ViewModel:
public class DataViewModel
{
[Key, Column(Order = 0)]
public int ID { get; set; }
[Column(Order = 1)]
public int Q1ID { get; set; }
[Column(Order = 2)]
public int Q2ID { get; set; }
public List<Q1Values> Q1ValuesList {get;set;}
}
我遇到的问题是,使用相同的查找表“ Q1Values”时,我将有超过50个问题。 上面的问题是,在插入之前,我将不得不从视图模型到实体模型手动加载/映射FK实体。
我尝试了下面的视图模型
public class DataViewModel
{
[Key, Column(Order = 0)]
public int ID { get; set; }
[Column(Order = 1)]
public Q1Values Q1ID { get; set; }
[Column(Order = 2)]
public Q1Values Q2ID { get; set; }
public List<Q1Values> Q1ValuesList {get;set;}
}
然后,我将下拉菜单映射如下
@Html.DropDownListFor(m=>m.Q1.ID, new SelectList(model.Q1Values,"ID","Name"))
但这仍然需要我将其映射到控制器中已完全加载的实体,因为它仅包含ID。
最佳做法是什么? 我是否需要为每个问题在控制器中映射完整实体? 似乎很累,因为它有很多重复项。
我尝试在我的实体类中手动定义外键,但似乎无法使其适用于多个FK。 见下文。
public class QOLData
{
[Key, Column(Order = 0)]
public int ID { get; set; }
[Column(Order = 1)]
public int Q1 { get; set; }
[Column(Order = 2)]
public int Q2 { get; set; }
[ForeignKey("Q1,Q2")]
public virtual Q1Values Q1Values { get; set; }
}
看看在Entity Framework Code First中为同一表定义多个外键 。 我认为有足够的信息可以解决您的问题。 希望这可以帮助...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.