I understand that its a best practice to put your business rules in a business layer and your data access in a separate data access layer, while the entities are part of your model.
So for example i'm working with a Customer entity defined in my model, i can fetch all customers from the database via the Data access layer. I can also add a new customer, via the DAL.
However before I add the customer, i need to run a validation on it - so i guess i need to define the rules in the business layer - but i'm not quite sure how to go about it.
Does my business layer only have methods which accept the entities as parameters? Something like BLL.Customers.Validate(Model.Customer customer) ?
Or
Does my business layer extend my Entities? Should I make the entity classes like Customer partial classes? so that the BLL can extend them further with business rules?
I'm not sure how to design the business layer.