我不知道为什么,但是使用此设置,自动映射也会尝试映射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>();
}
}
IgnoreBase解决了我的问题。
.Mappings(m => m.AutoMappings.Add( AutoMap.AssemblyOf<T>()
.IgnoreBase(typeof(BaseClass<>))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句