2010-09-02 2 views
0

Я пытаюсь создать карту для получения результатов, как из нижеследующего запроса. У меня возникли трудности с установкой отображения продукта для сопоставления ссылок на Product_Line на 3 столбца, как в случае условия. Как я могу достичь этого, используя бегство?Свободное отображение nhibernate

стол продукта: ИДС, projíd, линия и т.д., колонны Product_Line стола: ИДС, projíd, линия и т.д., колонны

выберите F * от продукта F присоединиться к Product_Line V на f.cId. = v.CId и f.ProjID = v.ProjID и f.line = v.line

Спасибо заранее. RajeshC

Во-первых, спасибо за глядя на него, и вот с деталями: // Req: Я хочу запросить продукт таким образом, что если никаких ProductLine, то я хочу, чтобы создать Productline, если есть один , то я обновлю его.

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") // 
} 

ответ

0

Мы могли бы дать вам гораздо лучший ответ, если вы показали нам свои C# коды и завернули SQL в < коды> теги ... Вот моя догадка, что я думаю вы хотите:

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

i обновлен с образцом кода. Заранее спасибо. – rajeshC

+0

Как насчет использования HasOne? HasOne (m => m.Line) .ForeignKey («CustId»). ForeignKey («PROJId»). ForeignKey («LINENUMBER»); – rajeshC

Смежные вопросы