The blogosphere is full with posts about how the ADO.NET Entity Framework is violating Persistence Ignorance by letting domain classes inherit from an abstract base class in order to be persisted. In addition, you have to put attributes on the properties of your class. Besides that you also need to have three mapping files. You can find more info in the following posts:
- Entity Framework without Persistence Ignorance
- Linq to Entities: Microsoft's first go at O/R Mapping (they need our feedback now!)
- Persistence Ignorance
This is what I believe a huge mistake made by the ADO.NET team. They should provide a mechanism that has enough with the three mapping files. Besides that, it should be possible to use an abstract base class (or interface) and attributes on properties, without the mapping files. This for the people who don't care about Persistence Ignorance. For those who want to keep their domain model free from all kinds of data dependencies (like me) would like to have mapping files only.
I think that Microsoft is going to have a hard time keeping up with NHibernate. NHibernate is already providing these two mechanisms separately. Please let them change their mind before RTM!