Fluent nhibernate映射嵌套属性“;找不到getter“;

Fluent nhibernate映射嵌套属性“;找不到getter“;,nhibernate,orm,fluent-nhibernate,fluent-nhibernate-mapping,Nhibernate,Orm,Fluent Nhibernate,Fluent Nhibernate Mapping,好的,这可能是一个双重问题。我有一个类User,它包含类型为UserLocation的属性Location。起初,我将用户类和用户位置类映射到并将它们存储在数据库中,但这对我来说没有多大意义,因为用户位置的唯一目的是成为用户的一部分。无论如何,现在,我的映射如下所示: public class UserMap : ClassMap<User> { public UserMap() { Id(x => x.Id).A

好的,这可能是一个双重问题。我有一个类
User
,它包含类型为
UserLocation
的属性
Location
。起初,我将用户
用户位置
类映射到并将它们存储在数据库中,但这对我来说没有多大意义,因为
用户位置
的唯一目的是成为
用户
的一部分。无论如何,现在,我的映射如下所示:

public class UserMap : ClassMap<User>
    {
        public UserMap()
        {
            Id(x => x.Id).Access.ReadOnlyPropertyThroughLowerCaseField().GeneratedBy.Identity();
            Map(x => x.Location.Address);
            Map(x => x.Location.City);
            Map(x => x.Location.State);
            Map(x => x.Location.ZipCode);
        }
    }
public class UserMap : ClassMap<User>
{
    public UserMap()
    {
        Id(x => x.Id).Access.ReadOnlyPropertyThroughLowerCaseField()
            .GeneratedBy.Identity();

        Component(x => x.Location,
            loc =>
            {
                loc.Map(x => x.Address);
                loc.Map(x => x.City);
                loc.Map(x => x.State);
                loc.Map(x => x.ZipCode); 
            });
    }
}
公共类用户映射:类映射
{
公共用户映射()
{
Id(x=>x.Id).Access.ReadOnlyPropertyThroughLowerCeField().GeneratedBy.Identity();
映射(x=>x.Location.Address);
地图(x=>x.Location.City);
Map(x=>x.Location.State);
Map(x=>x.Location.ZipCode);
}
}
但是我得到错误“找不到
UserLocation.Address
的getter”。我还收到了一系列转换错误,因为NHibernate似乎仍在为
UserLocation
生成计算类。所以我想问题是,从映射类中引用非映射自定义类的最佳方法是什么

哦,补充一句,我很确定
UserLocation
没有映射到任何地方。我甚至尝试将对它的引用从
User
映射中取出,但在尝试将计算类转换为实际类时仍然会出现转换错误。我不可能理解为什么在这一点上会有一个计算类型。

你拥有的是一个。组件在NHibernate中单独映射

您的Fluent NHibernate映射应如下所示:

public class UserMap : ClassMap<User>
    {
        public UserMap()
        {
            Id(x => x.Id).Access.ReadOnlyPropertyThroughLowerCaseField().GeneratedBy.Identity();
            Map(x => x.Location.Address);
            Map(x => x.Location.City);
            Map(x => x.Location.State);
            Map(x => x.Location.ZipCode);
        }
    }
public class UserMap : ClassMap<User>
{
    public UserMap()
    {
        Id(x => x.Id).Access.ReadOnlyPropertyThroughLowerCaseField()
            .GeneratedBy.Identity();

        Component(x => x.Location,
            loc =>
            {
                loc.Map(x => x.Address);
                loc.Map(x => x.City);
                loc.Map(x => x.State);
                loc.Map(x => x.ZipCode); 
            });
    }
}
公共类用户映射:类映射
{
公共用户映射()
{
Id(x=>x.Id).Access.ReadOnlyPropertyThroughLowerCeField()
.GeneratedBy.Identity();
组件(x=>x.位置,
loc=>
{
位置图(x=>x地址);
位置图(x=>x.City);
位置图(x=>x.State);
loc.Map(x=>x.ZipCode);
});
}
}
小字体,呵呵,西班牙语中不是“muchos”,而是“muchas”,因为“gracias”是“女性性别”中的一个词。“谢谢你”。