Nhibernate按代码映射,无法确定属性的类型

时间:2014-04-22 12:08:49

标签: c# .net hibernate nhibernate

我有实体对象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属性时。

1 个答案:

答案 0 :(得分:1)

用户很可能不是属性,而是关系类型(多对多,或多对一或其他)。最有可能的是它是组件父。

public static Action<IComponentMapper<Profile>> Mapping()
{
    return c =>
    {
       ...
       c.Parent(p => p.User);               
    }
}