我首先使用Entity Framework代码进行数据访问,并且我有一个具有Employees集合的Company类.Employee类还有一个Company属性.
我希望能够序列化公司并在序列化中包含员工列表.
这是公司:
public class Company
{
public long Id { get; set; }
public string Name { get; set; }
public DateTime? Established { get; set; }
public virtual IList<Employee> Employees { get; set; }
public DateTime? DateCreated { get; set; }
public DateTime? DateUpdated { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是员工
public class Employee
{
public long Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int …Run Code Online (Sandbox Code Playgroud) 将方法添加到POCO或创建单独的类来更新POCO的值是否是一个好的做法,以防我们需要?
例如,
public class ForUser
{
[Required]
public int Depratment { get; set; }
public List<SelectListItem> DepartmentsList { get; set; }
[Required]
public int Role { get; set; }
[Required]
[StringLength(200, MinimumLength = 3, ErrorMessage = "Length Of The First Name Should Be More Than Three Letters")]
public string FirstName { get; set; }
[StringLength(200, MinimumLength = 3, ErrorMessage = "Length Of The Mid Name Should Be More Than Three Letters")]
public string MidName { get; set; }
[Required]
[StringLength(200, …Run Code Online (Sandbox Code Playgroud) 我已经使用VS2010的Entity Framework创建了一个包含属性,firstName,lastName和email的简单person类.如果我想附加DataAnnotations,就像在这篇博客文章中所做的那样,我有一个小问题,因为我的人类是动态生成的.我可以直接编辑动态生成的代码,但每当我必须更新我的模型时,我的所有验证代码都将被删除.
第一直觉是创建一个局部类并尝试附加注释,但它抱怨我正在尝试重新定义属性.我不确定你是否可以在C#中使用C++中的函数声明来进行属性声明.如果可能,那可能就是答案.这是我尝试过的片段:
namespace PersonWeb.Models
{
public partial class Person
{
[RegularExpression(@"(\w|\.)+@(\w|\.)+", ErrorMessage = "Email is invalid")]
public string Email { get; set; }
/* ERROR: The type 'Person' already contains a definition for 'Email' */
}
}
Run Code Online (Sandbox Code Playgroud) 我刚刚开始使用Entity Framework 4.1,尝试"数据库优先"模式.当EF使用"ADO.Net DbContext Generator"生成Model类时,它不应该使用[Key]属性识别类的主键吗?没有它,它似乎与T4 MVCScaffolding不兼容.
以下是详细信息:
使用实体数据模型设计器GUI,我从现有数据库向模型添加了一个简单的"国家/地区"表.GUI正确地将名为"PK"的单个整数身份密钥字段标识为我的主键.(唉!我是新用户所以我无法添加屏幕截图.我已经在下面添加了CSDL.)但是,当EF使用"ADO.Net DbContext Generator"生成代码时,它无法识别PK field作为生成的类中的关键字段(请参阅下面的代码摘录).
"国家"表的CSDL:
<edmx:ConceptualModels>
<Schema Namespace="EpiDataModel" Alias="Self" xmlns:annotation="http://schemas.microsoft.com/ado/2009/02/edm/annotation" xmlns="http://schemas.microsoft.com/ado/2008/09/edm">
<EntityContainer Name="EpiModelEntities" annotation:LazyLoadingEnabled="true">
<EntitySet Name="countries" EntityType="EpiDataModel.country" />
</EntityContainer>
<EntityType Name="country">
<Key>
<PropertyRef Name="PK" />
</Key>
<Property Name="PK" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
<Property Name="Abbreviation" Type="String" Nullable="false" MaxLength="200" Unicode="false" FixedLength="false" />
<Property Name="Name" Type="String" MaxLength="1024" Unicode="false" FixedLength="false" />
<Property Name="Description" Type="String" MaxLength="1024" Unicode="false" FixedLength="false" />
<Property Name="Sequence" Type="Int32" />
</EntityType>
</Schema>
</edmx:ConceptualModels>
Run Code Online (Sandbox Code Playgroud)
这是自动生成的代码:
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated from a template. …Run Code Online (Sandbox Code Playgroud) primary-key entity-framework-4.1 ef-database-first dbcontext asp.net-mvc-scaffolding
我正在使用.NET 4的asp mvc3应用程序.
但是我想要使用的模型是在使用.NET 3.5的类库中,并且无法更改.
我可以以编程方式将.NET 4 数据注释添加到我的模型中的某些属性中,以便进行一些简单的验证吗?
您好,我正在使用 Editorfor() 制作一个小表单,将视图模型提交到控制器。Editorfor() 很好地打印模型的输入字段,但它也打印主键字段。所以我想隐藏主键字段。
@Html.EditorFor(m=>m.viewmodel)
Run Code Online (Sandbox Code Playgroud)
这是我的标记。
@Html.HiddenFor(m => m.viewmodel.Id);
@Html.EditorFor(m=>m.viewmodel)
Run Code Online (Sandbox Code Playgroud)
已经尝试过这个但不起作用。我想直接对模型进行处理,但我使用的是 EF Designer,所以我不知道从哪里开始。请给我一个建议。
c# ×3
asp.net-mvc ×2
dbcontext ×1
html-helper ×1
json.net ×1
poco ×1
primary-key ×1
validation ×1