我不知道为什么但是通过这个设置,automap也试图映射BaseClass,我该如何解决这个问题?
实体' BaseClass`1'没有ID映射。使用Id方法 映射您的身份属性。例如:Id(x => x.Id)。
_sessionFactory = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008.ConnectionString(ConnectionString).ShowSql())
.Mappings(m => m.AutoMappings.Add(AutoMap.AssemblyOf<Foo.E.MenuItem>()
.Where(t => t.Namespace == "Foo")
.Setup(cfg => { cfg.FindIdentity = member => member.Name == member.DeclaringType.Name + "Id"; }))
.ExposeConfiguration(cfg => new SchemaUpdate(cfg).Execute(false, true))
.BuildSessionFactory();
命名空间X
public partial class BaseClass<T>
{
//somecode
}
命名空间Foo
public class MenuItem : BaseClass<MenuItem>
{
public virtual int MenuItemId { get; set; }
public virtual string Text { get; set; }
public virtual int ParentId { get; set; }
public virtual IList<MenuItem> Children { get; set; }
public virtual MenuItem Parent { get; set; }
public MenuItem()
{
Children = new List<MenuItem>();
}
}
答案 0 :(得分:0)
IgnoreBase解决了我的问题。
.Mappings(m => m.AutoMappings.Add( AutoMap.AssemblyOf<T>()
.IgnoreBase(typeof(BaseClass<>))