Ich bin wirklich mit diesem NHibernate Query :) Kopf, um einen Beitritt zu schreiben. Ich habe viele zu viele Beziehung mit Asset und Produkt. Nachfolgend finden Sie die Tabelle ModellNHibernate QueryOver Join viele zu viele
public class Asset
{
string Id { get; set; }
List<Product> Products { get; set; }
}
public class Product
{
string Id { get; set; }
List<Asset> Assets { get; set; }
}
Hier ist der Code, den ich mit QueryOver versuche
Product productAlias = null;
Asset assetAlias = null;
var query = Session.QueryOver<Asset>(()=>assetAlias);
if (!string.IsNullOrEmpty(title))
query.WhereRestrictionOn(x => x.Title).IsLike(title, MatchMode.Anywhere);
if (!string.IsNullOrEmpty(productNumber))
{
query.WhereRestrictionOn(asset => asset.Products.First().Id).Equals(productNumber);
}
var result = query.List<Asset>();
Kann mir jemand helfen, wie die Join queryover zu schreiben, so dass ich alle Asset-Titel, dessen finden wollen ist wie titel und die produktnummer entspricht der produktnummer?
Ich bekomme nicht das Ergebnis mit dem obigen Code.
The sql query i am trying to achieve is :
select a.* from Asset a ,
ManyToManyTable b on a.mat_id=b.mat_id
where a.title like '%test%' and b.prod_no='212300733'
Dank
Ich nehme an, Sie versuchen tatsächlich für 'wählen Sie ein. * Von Assest eine * innere Verbindung * ManyToManyTable b auf ...'. –
Nein, ich versuche links beizutreten. Ein Asset kann null oder viele Produkte haben. –
Wenn es null Produkte hat, wird es nie irgendwelche haben, die der Produktnummer entsprechen. –