I’ve started to develop ASP.NET MVC application using Entity Framework and I wish to use DDD. It’s my first time using DDD in ASP.NET (used until now in PHP), so I’m little confused.
I’m using code-first approach, so I’m creating my entites in the core and then the DbContext in the Infrastructure.
My questions is about data annotations: Is it OK to annonate the entities in the core? with Required, DataType, etc. or I have to create entries with pure C# validation (in the setters and getters) and then create a map objects for the database creation?
For example, I got:
public class Account
{
public string AccountName { get; set; }
}
Can I annonate the AccountName with [Required] or I need to create a map class which will just reflect the exact same properties in the Account class but will have attributes and that will be the class that I’ll use in Entity Framework DbContext?
Thanks!
I’d say either way is fine.
If you want a more pure approach you would create a buddy class that has the metadata on it however it is also acceptable to put it directly on the domain class.
In the end it comes down to how much you want to remain “pure” and how much extra work you want to put into maintaining buddy classes, not to say that it is a bad thing.