Asp.net mvc 3 通过edmx验证属性

Asp.net mvc 3 通过edmx验证属性,asp.net-mvc-3,validation,ado.net-entity-data-model,edmx,Asp.net Mvc 3,Validation,Ado.net Entity Data Model,Edmx,我正在做一个MVC3项目,我已经在SQL server 2008上创建了我的数据库,然后我使用实体数据模型添加了它,现在我有了.edmx,我不想生成类的代码,因为直到现在它还不稳定,我觉得除了进行验证之外,没有必要这样做 我想知道是否有一种方法可以直接使用.edmx进行验证,而无需生成类代码 需要服务器端和客户端验证吗 干杯你不能从edmx那里做这件事。但是,您可以拥有将元数据添加到edmx生成的类中的类 这会将包含类的元数据添加到由edmx生成的类中: [MetadataTypeAttribu

我正在做一个MVC3项目,我已经在SQL server 2008上创建了我的数据库,然后我使用实体数据模型添加了它,现在我有了.edmx,我不想生成类的代码,因为直到现在它还不稳定,我觉得除了进行验证之外,没有必要这样做 我想知道是否有一种方法可以直接使用.edmx进行验证,而无需生成类代码 需要服务器端和客户端验证吗
干杯

你不能从edmx那里做这件事。但是,您可以拥有将元数据添加到edmx生成的类中的类

这会将包含类的元数据添加到由edmx生成的类中:

[MetadataTypeAttribute(typeof(CustomerMetadata))]
public partial class Customer
{
}
然后是具有元数据属性的元数据类:

internal sealed class CustomerMetadata
{
    public int ID;

    [Required]
    [StringLength(60)]
    public string Name;
}
编辑: EF将其所有类生成为分部。这意味着您可以将不同文件中的功能添加到同一类中。我们使用此功能添加一个属性,告诉.net存在一个包含元数据信息的类。在这种情况下,带有
Customer
类元数据的类是
CustomerMetadata


它具有您希望用元数据修饰的所有属性。在这种情况下,实际上不需要ID。

您不能从edmx执行此操作。但是,您可以拥有将元数据添加到edmx生成的类中的类

这会将包含类的元数据添加到由edmx生成的类中:

[MetadataTypeAttribute(typeof(CustomerMetadata))]
public partial class Customer
{
}
然后是具有元数据属性的元数据类:

internal sealed class CustomerMetadata
{
    public int ID;

    [Required]
    [StringLength(60)]
    public string Name;
}
编辑: EF将其所有类生成为分部。这意味着您可以将不同文件中的功能添加到同一类中。我们使用此功能添加一个属性,告诉.net存在一个包含元数据信息的类。在这种情况下,带有
Customer
类元数据的类是
CustomerMetadata

它具有您希望用元数据修饰的所有属性。在这种情况下,实际上不需要ID。

(我本来会将此添加为注释,但我还没有足够的信誉点数) 请确保分部类中的名称空间与EF生成的类的名称空间完全匹配,包括正确的大小写。

(我本想将其作为注释添加,但我还没有足够的信誉点)
确保分部类中的名称空间与EF生成的类的名称空间完全匹配,包括正确的大小写。

因此,我必须在模型文件夹中添加一个与表同名的分部类,并使用MetadataTypeAttribute对属性进行验证。我不知道我是否理解如何处理,因此我必须在model文件夹中添加一个与表同名的分部类,并使用MetadataTypeAttribute对属性进行验证。我不知道我是否很清楚该如何进行