我正在使用MVC3,并使用Entity Framework 4.0实体作为我的模型.到目前为止,就使用它作为模型而言,一切都很有效(所有的crud操作/页面生成开箱即用).我想知道,你如何获得与手动生成模型时相同的强大标签和验证信息?
这是我的意思的一个例子.这是一个由MVC3示例项目生成的类:
public class LogOnModel
{
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[Display(Name = "Remember me?")]
public bool RememberMe { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
通过上面的示例,您可以指定在字段的标签中显示的内容(显示)以及要使用的字段类型(密码).但是,当我尝试使用实体框架并将其推送到下面的视图时,我看到自动生成的标签只是字段名称,而不是我希望用户看到/必须阅读的内容:
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Person</legend>
<div class="editor-label">
@Html.LabelFor(model => model.FirstName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.FirstName)
@Html.ValidationMessageFor(model => model.FirstName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.MiddleName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.MiddleName)
@Html.ValidationMessageFor(model => model.MiddleName) …Run Code Online (Sandbox Code Playgroud) 所以我用这个教程来生成我将在我的应用程序中使用的poco类.问题是我不应该修改生成的cs文件导致它们被自动生成...我如何添加像[Required]这样的属性类似的东西??请帮忙
我在VS2012上使用EF5,当表生成时我遇到了问题.
1)我创建了一个包含2个表的简单数据库模式(edmx):
属性:名称(字符串)
表2:角色
2)将唯一键的属性(称为Id)定义为:
3)实体模型的属性是:
4)生成相关的类,但不存在[Key]属性:
using System;
using System.Collections.Generic;
public partial class Person
{
public Person()
{
this.Role = new HashSet<Role>();
}
//[Key] <-- Missed!
public System.Guid Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Role> Role { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
5)我创建一个域服务,将上述实体暴露给客户端,如:
[EnableClientAccess] …Run Code Online (Sandbox Code Playgroud)