2009-08-03 8 views

Répondre

2

il suffit d'ajouter [SubSonicIgnore] ci-dessus LineCost

si

 [SubSonicIgnore] 
     public decimal LineCost 
     { 
      get { return Qty * Convert.ToDecimal(LineCost); } 
     } 

ce qui se passe comme LineCost est mis en correspondance avec la base de données.

+0

Cela fonctionne !, Mais Podge, est la bonne façon de faire les exigences ci-dessus ou juste un travail -autour? –

+0

Je ne vois pas cela comme un travail, je pense que c'est la meilleure solution. La raison en est que vous avez un endroit où le calcul se produit, si vous le faites en SQL/Linq vous combinez une récupération de données avec un calcul, chaque fois que vous récupérez une ligne de commande, vous devez inclure le calcul, oublier et vous avez belle petite fonctionnalité. – Podge

1

Pourquoi ne pas le faire le calcul dans la définition de l'objet lui-même?

Alors

public class OrderLine 
    { 
     public int OrderId { get; set; } 
     public int Qty { get; set; } 
     public decimal ProductPrice { get; set; } 
     public decimal LineCost 
     { 
      get { return Qty * Convert.ToDecimal(LineCost); } 
     } 
    } 
+1

grâce Podge, je vais essayer celui-ci. Est-ce la bonne façon ou juste un travail autour? –

+0

Echec: SqlException: Nom de colonne invalide 'LineCost' @Podge, rappelez-vous que j'utilise SimpleRepository et fabriqué à la main ma classe/objet –

0

je ne peux voir un moyen en utilisant les types anoynmous, puis vous devrez convertir le type à la ligne de commande (ce ne est pas très agréable)

   var x =from o in repo.All<OrderLine>()  
        select new 
        { 
         OrderId = o.OrderId, 
         ProductPrice = o.ProductPrice, 
         Qty = o.Qty, 
         LineCost = o.ProductPrice * o.Qty 
        }; 


      List<OrderLine> orders = null; 
      foreach (var t in x) 
      { 
       orders.Add(new OrderLine 
       { 
        LineCost = t.LineCost, 
        OrderId = t.OrderId, 
        ProductPrice = t.ProductPrice, 
        Qty = t.Qty 
       }); 

      } 
Questions connexes