Ste*_*ard 12 c# poco code-first entity-framework-4.1
我正在用EF做我的第一个项目,我打算去代码优先模型.我试图找到一些关于处理一个相当经典的"查找表"场景的指导.
我正在处理一个非常规范的情况,我会坚持地址数据.所以,我有一个简单的地址DTO ......
public class Address
{
public int Id { get; set; }
public virtual string StreetAddress1 { get; set; }
public virtual string StreetAddress2 { get; set; }
public virtual string City { get; set; }
public virtual string State { get; set; }
public virtual string ZipCode { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在state属性中,我想存储标准的美国双字母状态代码.出于验证目的,我希望在生成的Address表和相当标准的状态查找表之间建立标准的一对多外键关系.该表可能包含一个ID,两个字母的代码和一个包含完整州名的第三列.
我希望使用这个状态查找表来填充和说明下拉样式框等,并且还可以作为对地址实体中提交的State的验证.相当常见的东西.所以,我有几个简单(我希望)的问题.
我在这里明确表达了我的观点,我有点挣扎,所以如果我不清楚,可以随意询问更多细节.
提前致谢.在UI中适当?
public class Address
{
public int Id { get; set; }
public virtual string StreetAddress1 { get; set; }
public virtual string StreetAddress2 { get; set; }
public virtual string City { get; set; }
public virtual USState State { get; set; }
public virtual string ZipCode { get; set; }
}
public class USState
{
public int Id { get; set; }
public string Code { get; set; }
public string Text { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
使用代码首先EF将创建表,但您可以在Seed()方法中填充它.
[UIHint("StatePicker")]
public virtual USState State { get; set; }
Run Code Online (Sandbox Code Playgroud)
在您的POCO或视图模型中 - 取决于您的视图使用的内容.然后在Views/Shared/EditorTemplates中,添加一个局部视图StatePicker.cshtml,它会像这样
@inherits System.Web.Mvc.WebViewPage<USState>
@Html.DropDownListFor(m => m, new SelectList((IEnumerable<USState>)ViewBag.USStatesAll,
"Id",
"Name",
Model==null?1:Model.Id),
"Choose--")
Run Code Online (Sandbox Code Playgroud)
与...结合
@Html.EditorFor(m => m.State)
Run Code Online (Sandbox Code Playgroud)
在你看来.