Bonjour, je cherche à traduire cette requête en Linq sans succès hélas...
Pouvez vous m'aider ?
1 2 3 4 5
| DELETE FROM ShoppingCart
WHERE CartID IN
(SELECT CartID
FROM ShoppingCart
GROUP BY CartID HAVING MIN(DATEDIFF(dd,DateAdded,GETDATE())) >= @Days) |
Voici également la signature de ma méthode.
public static bool DeleteOldCarts(byte days)
Le byte days correspond au paramètre Days de la requête.
Voici ce que j'ai fait jusqu'à présent :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| public static bool DeleteOldCarts(byte days)
{
using (var ctx = new BalloonShopDataContext())
{
var queryShoppingCart = from a in ctx.ShoppingCart
where
(from shoppingcart0 in ctx.ShoppingCart
group shoppingcart0 by new { shoppingcart0.CartID } into g
select new { g.Key.CartID }).Contains(new { a.CartID }) &&
DateTime.Now.Subtract(a.DateAdded).Days > Convert.ToInt32(days)
select a;
try
{
foreach (var del in queryShoppingCart)
ctx.ShoppingCart.DeleteOnSubmit(del);
ctx.SubmitChanges();
return true;
}
catch
{
return false;
}
} |
Merci d'avance
Partager