2010-06-09 8 views
0

J'ai atteint la fin de ma corde Linq. Besoin de votre aide!Linq to Sql Aide à la projection

Heres ma structure de table d'abord (tous LINQ aux objets sql):

InventoryItems 
    -ID 
    -AmtInStock 

IventoryKits 
    -ID 

InventoryKits_to_InventoryItems 
    -InventoryItemID 
    -InventoryKitID 

donc je dois faire une projection comme ce qui suit

var q2=from k in GetAllKits()//returns IQueryable<InventoryKit> 
        select new VMPublication()//ViewModel Object 
        { 
         ID = k.ID, 
         Name = k.Name, 
         WebAmountInStock = ,//need to get the Min() AmtInStock from InventoryItems here 
         ItemCode = k.ItemCode, 
         WebAmountOrdered = k.AmtOrdered.ToString(), 
         WebReminderAmount = "", 
         WebAmountWarning="", 
         Type = "Kit" 
        }; 

Je ne sais pas comment obtenir ce Min() de AmtInStock de InventoryItem dans cette requête.

Aidez s'il vous plaît! Très apprécié!

Répondre

0

Je devine que vos noms d'association, mais essayer quelque chose comme:

var q2=from k in GetAllKits()//returns IQueryable<InventoryKit> 
       select new VMPublication()//ViewModel Object 
       { 
        ID = k.ID, 
        Name = k.Name, 
        WebAmountInStock = (from i in k.InventoryKits_to_InventoryItems 
             select i.InventoryItem.AmtInStock).Min(), 
        ItemCode = k.ItemCode, 
        WebAmountOrdered = k.AmtOrdered.ToString(), 
        WebReminderAmount = "", 
        WebAmountWarning="", 
        Type = "Kit" 
       }; 
+0

je suis arrivé: System.InvalidOperationException: Impossible de traduire l'expression « Table (REIP_InventoryKit) .Lorsque (k => k.Active) .Sélectionnez (k => new VMPublication() {ID = k.ID, nom = k.Name, WebAmountInStock = k.REIP_XREF_InventoryKits_to_InventoryItems.Select (i => i.REIP_InventoryItem.AmtInStock) .Min(). ToString(), ItemCode = k.ItemCode, WebAmountOrdered = k.AmtOrdered.ToString(), WebReminderAmount = "", WebAmountWarning = "", Type = "Kit"}) 'dans SQL et ne pouvait pas le traiter comme une expression locale. – Micah

+0

Non c'est la bonne réponse, maintenant je dois refactoriser pour résoudre mes problèmes syndicaux. THX! – Micah