我目前正在使用EntityFramework6在MVC5中重新开发一个站点,并且正在努力解决数据库结构问题,特别是将lookupFields从一个表转换为另一个表。我们有一份工作表
[u'Justice league', u'Avenger']
和JobState查找表
TABLE [dbo].[Job](
[JobId] [int] IDENTITY(1,1) NOT NULL,
[JobStateId] [int] NOT NULL,
现在我在查看使用Entity Framework生成的JobView时尝试使用查找表中的描述
TABLE [dbo].[JobState](
[JobStateId] [int] NOT NULL,
[Description] [varchar](50) NOT NULL
我创建了一个局部视图并添加到JobState字段
public partial class Job
{
public int JobId { get; set; }
public int JobStateId { get; set; }
public int JobPriorityId { get; set; }
public string JobType { get; set; }
public Nullable<System.DateTime> RunAfter { get; set; }
public int AttemptCount { get; set; }
public int MaxAttemptCount { get; set; }
public int RetryDelayMinutes { get; set; }
public string ContentXml { get; set; }
public Nullable<int> ContentId { get; set; }
public System.DateTime Created { get; set; }
public Nullable<int> SecondaryContentId { get; set; }
public Nullable<int> ParentId { get; set; }
public Nullable<bool> SingleChild { get; set; }
}
我正在尝试在视图中使用它
[MetadataType(typeof(JobMetadata))]
public partial class Job
{
[ForeignKey("JobState")]
public virtual JobState JobState { get; set; }
}
然而,这不会产生价值。
最好的方法是什么,用最少的代码来实现这个目标?
我应该从此查找表生成枚举,然后保持它们同步,还是在这些表之间创建关系?我已经研究过使用这个EF to enum package但是它需要迁移脚本和Seed()函数,而这个函数还没有使用Database first方法创建。
我还尝试为JobStates创建部分视图
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.JobId)
</td>
<td>
@Html.DisplayFor(modelItem => item.JobState)
</td>
然后在视图中使用editorFor方法,但无济于事。
有人能引导我朝正确的方向前进吗?