有没有一种方法可以让我有一个像这样的代码文件:
public partial class A
{
public string a { get; set; }
}
然后在另一个文件中:
public partial class A
{
[Attribute("etc")]
public string a { get; set; }
}
这样我就可以从数据库中生成一个类,然后使用一个非生成的文件来标记它?
发布于 2010-09-24 05:05:07
我在Scott Guthrie的一篇文章中看到过这样的事情(接近尾声)-尽管我自己没有尝试过。
http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx
[MetadataType(typeof(Person_Validation))]
public partial class Person
{
// Partial class compiled with code produced by VS designer
}
[Bind(Exclude="ID")]
public class Person_Validation
{
[Required(ErrorMessage = "First Name Required")]
[StringLength(50, ErrorMessage = "Must be under 50 characters")]
public string FirstName { get; set; }
[Required(ErrorMessage = "Last Name Required")]
[StringLength(50, ErrorMessage = "Must be under 50 characters")]
public string LastName { get; set; }
[Required(ErrorMessage = "Age Required")]
[Range(0, 120, ErrorMessage = "Age must be between 0 and 120")]
public int Age { get; set; }
[Required(ErrorMessage = "Email Required")]
[Email(ErrorMessage = "Not a valid email")]
public string Email { get; set; }
}
发布于 2013-10-19 12:33:45
这是我在这种情况下一直使用的解决方案。当您有想要用属性装饰的自动生成的类时,它很有用。假设这是自动生成的类:
public partial class UserProfile
{
public int UserId { get; set; }
public string UserName { get; set; }
public string Firstname { get; set; }
public string Lastname { get; set; }
}
比方说,我想添加一个属性来指定UserId是键。然后我会在另一个文件中创建一个分部类,如下所示:
[Table("UserProfile")]
[MetadataType(typeof(UserProfileMetadata))]
public partial class UserProfile
{
internal sealed class UserProfileMetadata
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
}
}
发布于 2017-02-25 00:34:24
这就是我的答案
不同的类文件,或者您可以将元数据合并到同一个文件中,但保留名称空间和same..so,它们可以明显地看到彼此。
请记住,当您更新模型时,如添加更多列,您还必须更新项目类。
--your model class
public partial class A {
public string a {get; set;}
}
--your project class
public class Ametadata {
[Attribute("etc")]
public string a {get; set;}
}
[MetadataType(typeof(Ametadata))]
public partial class A
{
}
https://stackoverflow.com/questions/3782405
复制相似问题