流利的Nhibernate - 返回零结果

时间:2016-04-23 16:40:26

标签: c# nhibernate fluent-nhibernate nhibernate-mapping

我一直在玩NHibernate,但是,当我查询时,我似乎无法获得任何结果。我运行代码时没有收到任何错误,所以我不确定我做错了什么。

我正在使用Adventure works数据库。我使用Dapper查询它,我能够得到结果。

public class Person
{
   public virtual int BusinessEntityID {get; set;}
   public virtual string FirstName {get; set;}
   public virtual string LastName {get; set;}
}

人员类地图

public class PersonMap : ClassMap<Person>
{
    public PersonMap()
    {
        Id(x => x.BusinessEntityID);
        Map(x => x.FirstName);
        Map(x => x.LastName);
        Table("Person");
    }
}

初始化

public class NHibernateHelper
{
    private static ISessionFactory _sessionFactory;

    private static ISessionFactory SessionFactory
    {
        get
        {
            if (_sessionFactory == null)

                InitializeSessionFactory();
            return _sessionFactory;
        }
    }

    private static void InitializeSessionFactory()
    {
        _sessionFactory = Fluently.Configure()
            .Database(MsSqlConfiguration.MsSql2008
                .ConnectionString(
                @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Public\AdventureWorks2012_Data.mdf;Integrated Security=True;Connect Timeout=30") // Modify your ConnectionString
                            .ShowSql()
            )
            .Mappings(m =>
                        m.FluentMappings
                            .AddFromAssemblyOf<Person>())
            .ExposeConfiguration(cfg => new SchemaExport(cfg)
                                            .Create(true, true))
            .BuildSessionFactory();
    }

    public static ISession OpenSession()
    {
        return SessionFactory.OpenSession();
    }
}

查询

using (ISession session = NHibernateHelper.OpenSession())
{
    var p = session.QueryOver<Person>().Take(10).Future();
    p.Dump();
}

当我使用dapper尝试相同的查询时,我使用了以下代码

Select TOP 10 * FROM Person.Person

我尝试将类地图上的表格设置器更新为

Table("Person.Person");

但是我收到了以下错误。

There is already an object named 'Person' in the database.

非常感谢任何帮助。

0 个答案:

没有答案