我有一個SQL查詢,我試圖將其轉換成NHibernate的查詢,並運行它。轉換SQL查詢NHibernate的
SQL查詢
SELECT
A.*
FROM
TestTable i
LEFT JOIN
TestTable o
ON
i.testColumn=o.testcolumn and i.testColumn1='TestColumn1'
WHERE o.StartDate <= '2016-10-28' and i.testColumn2 > 3
Nhibertnate查詢
對象A是TestTable的
ObjectA o = null;
ObjectA i = null;
var query = Session.QueryOver(() => o)
.Left.JoinQueryOver(() => i)
.Where(() => o.testColumn == i.testColumn)
.Where(() => i.testColumn1 == "TestColumn1")
.Where(() => i.testColumn2 == 3
.Where(() => o.StartDate <= '2016-10-28')
return query.Take(100).List();
映象的C#對象版本
public ObjectATableMap : ClassMap<ObjectA>
{
Schema("[Test]");
Table("[TestTable]");
Id(x => x.Id, "Id").GeneratedBy.Native();
Map(x => x.TestColumn1, "TestColumn1");
Map(x => x.TestColumn2, "TestColumn2");
Map(x => x.StartDate ,"StartDate");
}
當運行ABOV Ë查詢我得到以下信息 「無法解析屬性:我的:對象A」 誰能請我提供正確的Hibernate查詢。 感謝
顯示映射 –
'JoinQueryOver'預計與具有的關係的性質的表達式。你可以在這裏看到一個例子http://stackoverflow.com/a/5420791/1486443 – Najera
@RadimKohler映射顯示 – Sike12