verwendetes Datenbanksystem: <SQL2014>
Hallo zusammen,
ist es moeglich ein Linq Statement dynamisch zu gestalten?
Wenn ich ein komplexes Linq Statement habe, moechte ich dieses gerne ungern zweimal pflegen, wenn sich z.B. nur die Where clause aendert.
Gibt es hierzu eine Moeglichkeit?
Bsp:
Mit Address Filter:
var result = from o in Orders
join ol in OrderLines
on o.Id equals ol.OrderId
join ad in AddressBases
on o.AddressId equals ad.Id
where o.Date >= start && o.Date <= end &&
o.AddressId == address
group new { ol.ProductLine, ad.Name1, ol.Price }
by new {ol.ProductLine, ad.Name1 } into gr
select new
{
ProductLine = gr.Key.ProductLine,
Sum = gr.Sum(x => x.Price),
Address = gr.Key.Name1
};
ohne Address Filter:
var result = from o in Orders
join ol in OrderLines
on o.Id equals ol.OrderId
join ad in AddressBases
on o.AddressId equals ad.Id
where o.Date >= start && o.Date <= end
group new { ol.ProductLine, ad.Name1, ol.Price }
by new {ol.ProductLine, ad.Name1 } into gr
select new
{
ProductLine = gr.Key.ProductLine,
Sum = gr.Sum(x => x.Price),
Address = gr.Key.Name1
};
Vielen Dank,
Manullino
Du kannst z.B. mit einer Func<Order,bool> in der where arbeiten.
Simple, zusätzliche if-Abfrage zwischen Select und Group..
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code