Chr*_*all 72 c# attributes code-generation partial-classes
有没有办法我可以像这样生成一个代码文件:
public partial class A {
public string a {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
然后在另一个文件中:
public partial class A {
[Attribute("etc")]
public string a {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
这样我可以从数据库生成一个类,然后使用非生成的文件来标记它?
Jea*_*amp 70
这是我一直在使用的解决方案.当您想要使用属性装饰自动生成的类时,它非常有用.假设这是自动生成的类:
public partial class UserProfile
{
public int UserId { get; set; }
public string UserName { get; set; }
public string Firstname { get; set; }
public string Lastname { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
让我们说,我想添加一个属性来指定UserId是关键.然后我会在另一个文件中创建一个部分类,如下所示:
[Table("UserProfile")]
[MetadataType(typeof(UserProfileMetadata))]
public partial class UserProfile
{
internal sealed class UserProfileMetadata
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
Dan*_*tru 30
我在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; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31300 次 |
| 最近记录: |