我試圖用線與NHibernate來從EngineEvaluation表中的數據:獲取數據在返回總是空
using (ISession session = OpenSession())
{
var c = session.QueryOver<EngineEvaluation>().List();
return c;
}
但C總是空雖然表不爲空。
我這樣的映射表:
internal class EngineEvaluationMap : ClassMap<EngineEvaluation>
{
public EngineEvaluationMap()
{
Table("EngineEvaluation");
Id(evaluation => evaluation.Id).GeneratedBy.Assigned();
Map(evaluation => evaluation.EngineSessionId).Nullable();
Map(evaluation => evaluation.Result).Nullable().Length(4001); // set length over 4000 to cause nvarchar (MAX)
Map(evaluation => evaluation.Parameters).Nullable();
Map(evaluation => evaluation.Score).Nullable();
Map(evaluation => evaluation.IgnoreScore).Nullable();
References(evaluation => evaluation.Engine).Not.Nullable();
References(evaluation => evaluation.EngineVersion).Not.Nullable();
HasMany(evaluation => evaluation.StatusChanges)
.Component(component =>
{
component.Map(change => change.ParentId).Formula("EngineEvaluationId");
component.Map(change => change.StatusChangeIndex).Formula("StatusChangeIndex");
component.Map(change => change.Timestamp).Not.Nullable();
component.Map(change => change.Status)
.CustomType<EnumStringType<EngineEvaluationStatus>>()
.Not.Nullable();
component.Map(change => change.Details).Length(4001); // set length over 4000 to cause nvarchar (MAX)
})
.KeyColumn("EngineEvaluationId")
.AsList(index => index.Column("StatusChangeIndex"))
.Table("EngineEvaluationStatusChanges")
.Cascade.AllDeleteOrphan();
HasMany(evaluation => evaluation.Errors)
.Component(component =>
{
component.Map(comment => comment.Timestamp).Not.Nullable();
component.Map(comment => comment.Message).Not.Nullable();
component.Map(comment => comment.ErrorLevel).CustomType(typeof(ErrorLevel)).Not.Nullable();
})
.AsList(index => index.Column("ErrorIndex"))
.Table("EngineEvaluationErrors")
.Cascade.AllDeleteOrphan();
}
}
什麼可以是問題,或者我怎麼能發現問題?
連接字符串指向正確的數據庫? – mjwills
輸出生成的sql – Fran
連接沒問題,因爲其他表格工作正常。 –