【问题标题】:Fluent Nhibernate Nunit Test ErrorFluent Nhibernate Nunit 测试错误
【发布时间】:2009-05-28 00:30:27
【问题描述】:

我正在尝试使用流畅的 nhibernate 映射来学习 Nhibernate,并且我创建了一个小型测试应用程序。下面是代码:

用户类:

public class User
{
    public string UserName { get; set; }
    public string Password { get; set; }
    public string Role { get; set; }
    public string Email { get; set; }
    public DateTime JoinDate { get; set; }
}

用户映射类:

public class UserMapping: ClassMap<User>
{
    public UserMapping()
    {
        WithTable("UserT");
        Not.LazyLoad();
        Id(u => u.UserName);
        Map(u => u.Password);
        Map(u => u.Role);
        Map(u => u.Email);
        Map(u => u.JoinDate);

    }
}

DAL 用户类:

public class DALUser
{

    public User GetUserByUserName(string userName)
    {
        ISessionFactory sessionFactory = Fluently.Configure()
            .Database(MsSqlConfiguration.MsSql2005.ConnectionString(c => c.Server("ServerName").Database("DBName").TrustedConnection()))
                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<UserMapping>()).BuildSessionFactory();

        ISession session = sessionFactory.OpenSession();
        return session.Get<User>(userName);
    }

}

Nunit 测试类:

[TestFixture]
public class UserTest
{
    [Test]
    public void CanGetUserByUserName()
    {
        DALUser user1 = new DALUser();
        Assert.AreEqual("testUser", user1.GetUserByUserName("testUser").UserName);
    }

}

当我尝试运行测试类时,我收到以下错误:对象引用未设置为对象的实例。 我在 GetUserByUserName 方法中放置了一个断点,并注意到它返回了一个空用户。但我无法弄清楚为什么会这样。谁能帮帮我?

【问题讨论】:

  • 如果用SELECT * FROM UserT WHERE UserName = 'testUser'查询数据库,结果是什么?

标签: nhibernate fluent-nhibernate


【解决方案1】:

看看你的数据库配置是否正确? 你确定你的数据库服务器是“ServerName” 并且您有现有的数据库“DBName”

【讨论】:

    猜你喜欢
    • 2011-12-20
    • 2010-12-13
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多