[英]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.