Nhibernate按代码进行映射,无法确定属性的类型
本文关键字:无法确定 属性 类型 映射 代码 Nhibernate | 更新日期: 2023-09-27 17:59:16
我有实体对象User
和值对象Profile
。
public class User : Entity<Guid>
{
...
public virtual Profile Profile { get; set; }
}
public class Profile
{
...
public virtual User User { get; set; }
}
我通过代码使用nhibernate映射,并将UserMap.cs
中的Profile值对象映射为类似Component(c => c.Profile, ProfileMap.Mapping());
的组件
ProfileMap.cs
public class ProfileMap
{
public static Action<IComponentMapper<Profile>> Mapping()
{
return c =>
{
...
c.Property(p => p.User);
}
}
}
在单元映射测试中,我收到了内部异常消息的错误
"无法确定的类型:MyApp.Domain.Model.User,MyApp.Domain,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null,对于列:NHibernate.MMapping.Column(User)"}
p.s.当我注释掉从ProfileMap
映射User
属性并将Profile
属性留在UserMap
映射工作中时。
用户很可能不是属性,而是关系类型(多对多、多对一或其他)。很可能是组件的父级。
public static Action<IComponentMapper<Profile>> Mapping()
{
return c =>
{
...
c.Parent(p => p.User);
}
}