I'm converting my EF POCO project to Code first. I had changed the T4 template, so that all my entities use a base class, EntityBase, that provides them with some common functionality that is not persistence related.
If I use [NotMapped] attribute on EntityBase, all entities inherit this attribute and I get a The type 'X.X.Person' was not mapped, for any type I try to use with EF.
If I use [NotMapped] on all properties of EntityBase, I get a EntityType 'EntityBase' has no key defined. Define the key for this EntityType exception
FYI: I use Ef 4.3.1
Edit: part of the code:
[DataContract(IsReference = true)]
public abstract class EntityBase : INotifyPropertyChanged, INotifyPropertyChanging
{
[NotMapped]
public virtual int? Key
{
get { return GetKeyExtractor(ConversionHelper.GetEntityType(this))(this); }
}
//other properties and methods!
}
and then
[DataContract(IsReference = true), Table("Person", Schema = "PER")]
public abstract partial class Person : BaseClasses.EntityBase, ISelfInitializer
{
#region Primitive Properties
private int? _personID;
[DataMember,Key]
public virtual int? PersonID
{
get{ return _personID; }
set{ SetPropertyValue<int?>(ref _personID, value, "PersonID"); }
}
}
For these two classes there is not fluent api configuration.

Try to define
EntityBaseasabstract, if it's possible for you, and putNotMapped... on the properties you don't want to map should do the trick.