У меня есть таблица DriverScans, которая присоединяется к DriverImages. Я хочу вернуть все DriverScan, где для любого DriverImage поле «Отправлено» равно false.
По существу
SELECT DriverScan.*
FROM DriverScan
INNER JOIN DriverImages
ON DriverImages.DriverScanId = DriverScan.DriverScanId
WHERE DriverImages.Sent = 0
Приведенный ниже код только DriverScans, но созданный SQL-запрос возвращает внутреннее объединение DriverScan и DriverImages, которое включает поле изображения. Как мне написать код, чтобы SQL возвращал только информацию DriverScan?
public IEnumerable<DriverScan> GetNewScans()
{
var session = GetCleanSession();
var query = session.CreateCriteria(typeof(DriverScan));
query.CreateCriteria("DriverImages", JoinType.InnerJoin)
.Add(Cr.Restrictions.Eq("Sent", false));
return query.List<DriverScan>();
}
Если применимо, мое отображение для DriverImages:
HasMany<DriverDoc>(x => x.DriverDocs)
.WithKeyColumn("DriverScanId").IsInverse()
.Cascade.AllDeleteOrphan().LazyLoad();