如果已经回答道歉,我无法找到符合我情景的答案。
我有一个实体类和一个视图模型。以下示例:
实体:
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; }
}
视图模型:
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实体从viewmodel加载/映射到实体模型。
我使用视图模型
尝试了以下内容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; }
}
答案 0 :(得分:0)
看看Defining multiple Foreign Key for the Same table in Entity Framework Code First。我认为有足够的信息来解决您的问题。希望这会有所帮助...