我有实体对象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
中的配置文件值对象映射为Component(c => c.Profile, ProfileMap.Mapping());
ProfileMap.cs
public class ProfileMap
{
public static Action<IComponentMapper<Profile>> Mapping()
{
return c =>
{
...
c.Property(p => p.User);
}
}
}
在单元映射测试中,我收到内部异常消息错误
&#34;无法确定:MyApp.Domain.Model.User的类型, MyApp.Domain,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null, 对于列:NHibernate.Mapping.Column(User)&#34;}
P.S。当我从User
注释掉ProfileMap
属性并在Profile
映射中保留UserMap
属性时。
答案 0 :(得分:1)
用户很可能不是属性,而是关系类型(多对多,或多对一或其他)。最有可能的是它是组件父。
public static Action<IComponentMapper<Profile>> Mapping()
{
return c =>
{
...
c.Parent(p => p.User);
}
}