Ich versuche Nhibernate mit fließenden Nhibernate Mappings zu lernen, und ich habe eine kleine Test-App erstellt. Unten ist der Code:Fluent Nhibernate Nunit Test Fehler
Benutzerklasse:
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; }
}
Benutzerkarte Klasse:
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 Benutzerklasse:
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 Testklasse:
[TestFixture]
public class UserTest
{
[Test]
public void CanGetUserByUserName()
{
DALUser user1 = new DALUser();
Assert.AreEqual("testUser", user1.GetUserByUserName("testUser").UserName);
}
}
Wenn ich versuche, die Testklasse auszuführen, erhalte ich den folgenden Fehler: Objektverweis nicht auf eine Instanz eines Objekts festgelegt. Ich habe einen Haltepunkt in der GetUserByUserName-Methode platziert und festgestellt, dass es einen Nullbenutzer zurückgibt. Aber ich kann nicht herausfinden, warum das passiert. Kann mir jemand helfen?
Wenn Sie die Datenbank mit SELECT * FROM Benutzer WHERE UserName = 'testUser' abfragen, was ist das Ergebnis? –