У меня есть SQL-запрос, и я пытаюсь преобразовать его в запрос Nhibernate и запустить его.Преобразование SQL-запроса в NHibernate
SQL Query
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 Запрос
Objecta является # версии объекта C из 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();
Сопоставления
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 e я получаю следующее сообщение "не удалось разрешить свойство: i of: ObjectA" Может ли кто-нибудь предоставить мне правильный запрос на спящий режим. Благодаря
Показать сопоставление –
'JoinQueryOver' ожидает выражение с свойством, которое имеет отношение. Вы можете увидеть пример здесь http://stackoverflow.com/a/5420791/1486443 – Najera
Отображения @RadimKohler Отображение – Sike12