I have a Subsonic3 Active Record generated partial User class which I've extended on with some methods in a separate partial class.
I would like to know if it is possible to add Data Annotations to the member properties on one partial class where it's declared on the other Subsonic Generated one I tried this.
public partial class User
{
[DataType(DataType.EmailAddress, ErrorMessage = "Please enter an email address")]
public string Email { get; set; }
...
}
That examples gives the "Member is already defined" error.
I think I might have seen an example a while ago of what I'm trying to do with Dynamic Data and Linq2Sql.
Inheritance cannot be applied to partial classes.
All parts of a partial class should be in the same namespace. Each part of a partial class should be in the same assembly or DLL, in other words you can't create a partial class in source files of a different class library project.
Any method, interface, and function declared on a partial class is available for all the other parts. The source file name for each part of the partial class can be different, but each partial class's name must be the same.
What you will need to do is create a 'buddy class' and apply the Data Annotations to that class:
[MetadataType(typeof(UserValidation))]
public partial class User
{
...
}
public class UserValidation
{
[DataType(DataType.EmailAddress, ErrorMessage = "Please enter an email address")]
public string Email { get; set; }
}
You should create a buddy class as explained here by Scott Guthrie http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With