2010-09-02 25 views
0

J'essaie de créer une carte pour obtenir des résultats comme de la requête ci-dessous. J'ai du mal à obtenir un mappage de produit pour définir des références à Product_Line sur 3 colonnes comme dans condition. Comment puis-je y parvenir en utilisant couramment?fluent nhibernate mappage

table de produit: cid, projid, ligne, etc., colonnes de table Product_Line: cid, projid, ligne, etc., colonnes

select f * du produit f rejoindre Product_Line v sur f.cId. = v.CId et f.ProjID = v.ProjID et f.line = v.line

Merci à l'avance. RajeshC

Tout d'abord, merci de regarder dans et ici plus d'informations: // Req: Je veux interroger produit tel que s'il n'y a pas ProductLine, je veux créer un ProductLine, s'il y a un , alors je vais le mettre à jour.

public class ProductMap : ClassMap<Product> 
{ 
    Id(x => x.Id); 
    Map(x => x.CustomerId, "CustId"); 
    Map(x => x.ProjId, "PROJId"); 
    Map(x => x.LineNumber, "LineNumber"); 
    Map(x => x.ReportType, "ReportType"); 
// Reference to Product_Line? - this reference should be based on three columns (custId, ProjId, LineNumber) 
    References(x => x.Line); 
} 

public class ProductLineMap : ClassMap<ProductLine> 
{ 
    Table("Product_Line"); 
    Map(x => x.CustomerId, "CustId"); //same column as Product.CustId 
    Map(x => x.ProjId, "PROJId"); //Same as Product.ProjId 
    Map(x => x.LineNumber, "LINENUMBER"); //Same as Product.LineNumber 
    //etc., 
    //for me, this reference is not needed as I need from Product to ProductLine - one way. 
    //References(x => x.Product).Column("ProjId") // 
} 

Répondre

0

Nous pourrions vous donner une meilleure réponse si vous nous avez montré votre code C# et enveloppées SQL dans le code <> balises ... Voici mon deviner ce que je pense vous voulez:

public class ProductMap : ClassMap<Product> 
{ 
    Id(x => x.Id); 
    References(x => x.Line); // Reference to Product_Line? 
    // etc. 
} 

public class ProductLineMap : ClassMap<ProductLine> 
{ 
    Table("Product_Line"); 
    Id(x => x.Id).Column("cId"); 
    References(x => x.Product).Column("ProjId") 
} 
+0

J'ai mis à jour avec l'échantillon de code. Merci d'avance. – rajeshC

+0

Que diriez-vous d'utiliser HasOne comme ça? HasOne (m => m.Line) .ForeignKey ("CustId"). ForeignKey ("PROJId"). ForeignKey ("LINENUMBER"); – rajeshC