我试图用线与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
连接没问题,因为其他表格工作正常。 –