0
나는 내가 처음 어설에서 예외가이 설정FluentNhibernate가 기존 행에 대해 NullReference를 반환하는 이유는 무엇입니까?
table SPEC (
Special_Name varchar2 pk
Signal integer
Created_At date)
namespace App
{
public class Strategy
{
public virtual string Id { get; private set; }
public virtual int Signal { get; set; }
public virtual DateTime CreatedAt { get; set; }
}
public class StrategyMap : ClassMap<Strategy>
{
public StrategyMap()
{
this.Table("SPEC");
this.Id(x => x.Id).Column("Special_Name");
Map(x => x.Signal).Column("Signal");
Map(x => x.CreatedAt).Column("Created_At");
}
}
}
namespace App.Tests
{
public class StrategyMapTest
{
private ISessionFactory sessionFactory;
public StrategyMapTest()
{
this.sessionFactory = this.CreateSessionFactory();
}
[Fact]
public void Can_read_from_database()
{
using (var session = this.sessionFactory.OpenSession())
{
var fromDb = session.Get<Strategy>("Foo 1");
Assert.Equal("Foo 1", fromDb.Id);
Assert.Equal("1", fromDb.Signal);
Assert.Equal(new DateTime(2011,1,1), fromDb.CreatedAt);
}
}
private ISessionFactory CreateSessionFactory()
{
return Fluently.Configure()
.Database(OracleClientConfiguration
.Oracle10
.ConnectionString("connString"))
.Mappings(m => m.FluentMappings
.AddFromAssemblyOf<Strategy>()
.ExportTo(@"C:\logs"))
.BuildSessionFactory();
}
}
}
에서 개체를하지 않습니다. 데이터베이스에서 오브젝트가 검색되지 않습니다. 존재합니다.
System.NullReferenceException: Object reference not set to an instance of an object.
내 수출 매핑은 모든 SQL 쿼리가 데이터베이스로 전송되는 경우 확인이 되었습니까
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class xmlns="urn:nhibernate-mapping-2.2" name="App.Strategy, App, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0af8b89e104ed570" table="SPEC">
<id access="backfield" name="Id" type="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<column name="Special_Name" />
<generator class="assigned" />
</id>
<property name="Signal" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<column name="Signal" />
</property>
<property name="CreatedAt" type="System.DateTime, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<column name="Created_At" />
</property>
</class>
</hibernate-mapping>
테이블에 데이터가 포함되어 있으면 쿼리가 작동합니다. 어쨌든 그것은 어제부터 삭제되었습니다. .Oracle10.ShowSql(). ConnectionString ("connString") 메서드를 사용하여 xunit GUI 러너를 통해 출력을 살펴 보았습니다. – mrt181