NHibernate查询不返回任何结果

Joe*_*ips 1 nhibernate fluent-nhibernate asp.net-mvc-2

我正在尝试使用ASP.NET MVC正确配置Fluent和NHibernate。据我所知,它的配置正确,但是当我访问使用该设置的页面时,没有收到任何数据结果。

我使用的模型称为Brand,数据库表为Brands

这是我的BrandController的片段:

public ActionResult Index()
{
    IRepository<Brand> repo = new BrandRepository();
    var brands = repo.GetAll().ToList<Brand>();

     return View(brands);
}
Run Code Online (Sandbox Code Playgroud)

这是我的BrandRepository中的摘录:

ICollection<Brand> IRepository<Brand>.GetAll()
{
    using (ISession session = NHibernateHelper.OpenSession())
    {
        var brands = session
            .CreateCriteria(typeof(Brand))
            .List<Brand>();

        return brands;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的NHibernateHelper:

public class NHibernateHelper
{
    private static ISessionFactory _sessionFactory;

    private static ISessionFactory SessionFactory
    {
        get
        {
            if (_sessionFactory == null)
            {
                _sessionFactory = Fluently.Configure()
                    .Database(
                        MsSqlConfiguration.MsSql2008
                            .ConnectionString(c => c
                                .FromConnectionStringWithKey("ShoesFullAccess")
                            )
                    )
                    .BuildSessionFactory();
            }

            return _sessionFactory;
        }
    }

    public static ISession OpenSession()
    {
        return SessionFactory.OpenSession();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的品牌模型:

public class Brand
{
    public int Id { get; private set; }
    public virtual string Name { get; set; }
    public virtual IList<Style> Styles { get; private set; }

    public Brand()
    {
        Styles = new List<Style>();
    }

    public virtual void AddStyle(Style style)
    {
        Styles.Add(style);
    }
}
Run Code Online (Sandbox Code Playgroud)

最后,这是我的BrandMap:

public class BrandMap : ClassMap<Brand>
{
    public BrandMap()
    {
        Id(x => x.Id);
        Map(x => x.Name);
        HasMany(x => x.Styles)
            .Inverse()
            .Cascade.All();
    }
}
Run Code Online (Sandbox Code Playgroud)

如果有人能为我指出缩小问题范围的正确方向,我将不胜感激!

Die*_*hon 5

您没有将映射添加到配置中。

在此之前添加.BuildSessionFactory()

.Mappings(m => m.FluentMappings.AddFromAssemblyOf<BrandMap>())
Run Code Online (Sandbox Code Playgroud)