繁体   English   中英

Fluent NHibernate 没有实体 class 的持久化器

[英]Fluent NHibernate no persister for entitiy class

我用谷歌搜索了我的屁股,似乎找不到解决我问题的方法。 我试图在这里获得演示项目: http://wiki.fluentnhibernate.org/Getting_started与 sql-server 2008 一起工作。

我似乎无法正确创建 sessionFactory。

编码:

    private static ISessionFactory CreateSessionFactory()
    {
        try
        {   
            return Fluently.Configure()
                           .Database(MsSqlConfiguration.MsSql2008
                                .ConnectionString(c => c
                                    .Server("localhost")
                                    .Database("gisli")
                                    .TrustedConnection()).ShowSql())
                            .Mappings(m => { 
                                m.HbmMappings.AddFromAssemblyOf<Employee>(); 
                                m.HbmMappings.AddFromAssemblyOf<Store>();
                                m.HbmMappings.AddFromAssemblyOf<Product>();

                            })
                   .BuildSessionFactory();


        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
            if(e.InnerException !=null)
                Console.WriteLine(e.InnerException.Message);
                return null;
        }
    }

我也尝试使用自动映射但无法使其工作。

我所有的实体类都是公开的。

实体 class 和映射 class 的示例:

public class Product
{
    public virtual int Id { get; private set; }
    public virtual string Name { get; set; }
    public virtual double Price { get; set; }
    public virtual IList<Store> StoresStockedIn { get; set; }

    public Product()
    {
        StoresStockedIn = new List<Store>();
    }
}

public class ProductMap : ClassMap<Product>
{
    public ProductMap()
    {
        Id(x => x.Id);
        Map(x => x.Name);
        Map(x => x.Price);
        HasManyToMany(x => x.StoresStockedIn)
            .Cascade.All()
            .Inverse()
            .Table("StoreProduct");
    }
}

编辑:

我也试过这个:

    private static ISessionFactory CreateSessionFactory()
    {
        return Fluently.Configure()
          .Database(MsSqlConfiguration.MsSql2008.ConnectionString(c =>             c.Server(".").Database("gisli").TrustedConnection()))
          .Mappings(m =>
            m.FluentMappings.AddFromAssemblyOf<Program>())
          .BuildSessionFactory();
    }

编辑:第二个例子实际上是解决方案。 一开始我不小心将项目命名为 FluentNHibernate,当我重命名该项目时,它有些混淆了。 谁能看到我在哪里搞砸了?

真诚的吉斯利

您的第一个示例实际上不包含任何流畅的映射,仅包含 HBM 映射。

只要您的映射与Program位于同一程序集中,您的第二个示例就应该可以工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM