Я погуглил свою задницу и, похоже, не могу найти решение своей проблемы.Я пытаюсь получить демонстрационный проект здесь: http://wiki.fluentnhibernate.org/Getting_started для работы с sql-сервером 2008.
Я не могу создать сессионный завод правильно.
Код:
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;
}
}
Я также пытался использовать автоотображение и не смог заставить его работать.
Все мои классы сущностей являются открытыми.
Пример класса сущности и класса отображения:
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 в начале, и когда я переименовал проект, он как-то перепутал.Кто-нибудь может увидеть, где я все испортил?
искренне Gísli