Liebe Foristen,
für Datenbankabfragen via EntityFramework würde ich gern die Where-Bedingung dynamisch generieren:
t =>
t.Levels.Any(l =>
l.LevelDetails.Any(
ld.LevelDate > DbFunctions.AddDays(t.TestDate, 1)
)
)
Beispielsweise zur dynamischen Erzeugung der vorstehenden Bedingung (= predicate) würde ich gern etwas in der folgenden Art tun:
Expression<Func<LevelDetail, DateTime?>> left =
ld => ld.LevelDate;
Expression<Func<Test, DateTime?>> right =
t => DbFunctions.AddDays(t.TestDate, 1);
BinaryExpression expr =
Expression.GreaterThan(
((LambdaExpression)left).Body,
((LambdaExpression)right).Body
);
Expression<Func<Test, bool>> predicate =
t =>
t.Levels.Any(l =>
l.LevelDetails.Any( expr )
);
class Test
{
public DateTime TestDate { get; set; }
public virtual ICollection<Level> Levels { get; set; }
}
class Level
{
public virtual ICollection<LevelDetail> LevelDetails { get; set; }
}
class LevelDetail
{
public DateTime LevelDate { get; set; }
}
Ist dies möglich?