2009-05-28 21 views
0

流暢なnhibernateマッピングを使用してNhibernateを学習しようとしています。私は小さなテストアプリケーションを作成しました。流暢Nhibernate Nunitテストエラー

UserClass:

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メソッドにブレークポイントを設定し、nullユーザーを返すことに気付きました。しかし、なぜこれが起こっているのか理解できません。誰でも助けてくれますか?

+0

SELECT * FROM UserT WHERE UserName = 'testUser'を使用してデータベースをクエリすると、結果はどうなりますか? –

答えて

0

データベースの設定は正しいですか? データベースサーバーが "ServerName" で、既存のデータベース "DBName"があることを確認してください