Fluent nhibernate 如何使用fluent Nhibernate组件

Fluent nhibernate 如何使用fluent Nhibernate组件,fluent-nhibernate,fluent,fluent-nhibernate-mapping,Fluent Nhibernate,Fluent,Fluent Nhibernate Mapping,我试图在fluent nhibernate中使用组件,并得到以下错误 FluentNHibernate.Cfg.FluentConfigurationException:创建SessionFactory时使用了无效或不完整的配置。有关详细信息,请检查潜在原因集合和InnerException 下面的代码看起来正确吗,还是我遗漏了什么 下面是我试图重用的对象 public class Thickness { public string Name { get; set; } publ

我试图在fluent nhibernate中使用组件,并得到以下错误

FluentNHibernate.Cfg.FluentConfigurationException:创建SessionFactory时使用了无效或不完整的配置。有关详细信息,请检查潜在原因集合和InnerException

下面的代码看起来正确吗,还是我遗漏了什么

下面是我试图重用的对象

public class Thickness
{
    public string Name { get; set; }
    public byte ThicknessSize { get; set; }
}
我已经在我的实体类中实现了它,如下所示

public class Liner
{
    public virtual int Id { get; set; }
    public virtual Thickness Thickness { get; set; }
}
实体的映射是

public class LinerMap : ClassMap<Liner>
{
    public LinerMap()
    {
        Table("Liner");
        Id(l => l.Id);
        Component(l => l.Thickness);              
    }
}
公共类LinerMap:ClassMap
{
公共LinerMap()
{
表(“班轮”);
Id(l=>l.Id);
组件(l=>l.厚度);
}
}
配置如下所示

   public static ISessionFactory CreateSessionFactory()
    {

        return Fluently.Configure()
            .Database(MsSqlConfiguration.MsSql2008.ConnectionString(c => c
                .Server("XXXXX")
                .Database("XXXXX")
                .Username("XXXXXXXXXX")
                .TrustedConnection()))
            .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Liner>())
            .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Thickness>())
            .BuildSessionFactory();
    }
公共静态ISessionFactory CreateSessionFactory()
{
流畅地返回。Configure()
.Database(MsSqlConfiguration.MsSql2008.ConnectionString(c=>c
.Server(“XXXXX”)
.数据库(“XXXXX”)
.用户名(“xxxxxxxxx”)
.TrustedConnection())
.Mappings(m=>m.FluentMappings.AddFromAssemblyOf())
.Mappings(m=>m.FluentMappings.AddFromAssemblyOf())
.BuildSessionFactory();
}
我注意到fluent wiki说这个功能不适用于自动映射,因此我明确使用了.mapping方法,但我不确定这是否足够

欢迎提出任何意见


GB

对进行了一些深入研究,如果代码试图使用其功能,则需要另一个参数。我不确定它为什么会以编写的方式编译,但它需要两个参数,一个是引用属性的参数,另一个是描述该引用属性映射的参数。

对进行了一些深入研究,如果您的代码试图使用其功能,那么它需要另一个参数。我不确定它为什么会以编写的方式编译,但它需要两个参数,一个是引用属性的参数,另一个是描述该引用属性映射的参数。

您看过InnerException(可能有其他InnerException)吗?堆栈跟踪中通常隐藏着一些线索。此外,还可以描述组件方法的功能以及它来自哪个名称空间。我没有在文档中看到它。您丢失了自动映射,因为您使用的是类映射。如果要获得自动映射,则需要使用覆盖。是否查看过InnerException(可能有其他InnerException)?堆栈跟踪中通常隐藏着一些线索。此外,还可以描述组件方法的功能以及它来自哪个名称空间。我没有在文档中看到它。您丢失了自动映射,因为您使用的是类映射。如果要获得自动映射,需要使用覆盖。稍后我将更好地了解组件方法。我已经浏览了fluent wiki,但我会再次查看,稍后再试。最后我决定离开组件,只创建不同的实体。稍后我会更好地查看组件方法。我已经浏览了fluent wiki,但我会再次查看,稍后再试。最后我决定离开组件,只创建不同的实体