Ah maybe what confused me is that the SQL generated is more like this:
select e.ElementId From Element e WHERE
EXISTS (SELECT NULL AS E FROM TagElement where TagID = 5 AND ElementID=e.ElementID)
AND NOT EXISTS (SELECT NULL AS E FROM TagElement where TagID = 2 AND ElementID=e.ElementID)
But I guess it works as well
So no need to answer the question.
public static void GetElementsTest()
{
var da = new DataAccessAdapter(true);
var metaData = new LinqMetaData(da);
var t1 = (from t in metaData.TagElement
where t.TagId == 5
select t.ElementId);
var t2 = (from t in metaData.TagElement
where t.TagId == 2
select t.ElementId);
var q = (from e in metaData.Element
where t1.Contains(e.ElementId) && t2.Contains(e.ElementId)
select e).Count();
Console.WriteLine("COUNT {0}", q);
}
Thanks,
Patrick