je un objetÉcrire des fonctions à utiliser dans C# déclaration LINQ
public class Product{
public int Id { get; set; }
public double Cost { get; set; }
public DateTime DatePurchased { get; set; }
public string Name { get; set; }
public string Barcode { get; set; }
public string Category { get; set; }
}
J'ai aussi une fonction public void TotalProductDiscountHistory(DateTime datePurchased, double cost)
qui fait des mathématiques complexes et renvoient les valeurs de réduction du jour où il a été acheté à ce jour. Je voudrais essentiellement pouvoir appeler cette fonction dans ma requête pour retourner la somme de tous les possibles pour tous les produits comme montré ci-dessous.
var query = db.Products.where(x => x.clientId == clientId)
.GroupBy(c => c.Category).Select(a => new {
Category = a.Category,
Cost = a.Sum(u => u.Cost),
TotalDiscounts = a.Sum(TotalProductDiscountHistory(a.DatePurchased,
a.Cost))
});
Mes questions est de savoir comment puis-je obtenir ceci ou plutôt comment puis-je créer une fonction afin que je puisse l'appeler dans une instruction de requête LINQ, transmettre des valeurs et renvoyer un résultat.
Avez-vous essayé la façon dont vous l'avez fait et il a échoué? –
Votre fonction renvoie 'void' et ne peut donc pas être utilisée dans' Sum' – Hintham
'J'ai aussi une fonction public void TotalProductDiscountHistory (DateTime dateAchat, double coût) qui effectue des calculs complexes et retourne les valeurs de réduction du jour où elle a été achetée date.' - Comment avez-vous un 'void'" valeurs de réduction de retour "? Si elle retourne, elle devrait retourner int/double/IEnumerable/... –
Nsevens