2011-07-13 5 views
0

J'ai 2 classes:2 tables en 1 classe en utilisant LINQ

[Table(Name = "_Reference2")] 
public class Customer 
{ 
    [Column(Name = "_IDRRef")] 
    public Binary CustomerRef { get; set; } 
    [Column(Name = "_Description")] 
    public string Name { get; set; } 
} 

[Table(Name = "_AccumReg2210")] 
public class Payment 
{ 
    [Column(Name="_Period")] 
    public DateTime Period { get; set; } 
    [Column(Name = "_Fld2211RRef")] 
    public Binary Customer { get; set; } 
    [Column(Name = "_Fld5051RRef")] 
    public decimal Sum { get; set; } 
} 

Y at-il possibilité de combiner ce cours en classe 1? Habituellement, j'ai besoin d'écrire une requête avec JOIN (ON Customer.CustomerRef = Payment.Customer) à ces classes. Il vaudra mieux implémenter une classe complexe, connectée aux deux tables.

Répondre

2
var results = from c in Customers 
       from p in Payments 
       where p.Customer == c.CustomerRef 
       select new ComplexObject() { 
       Name = c.Name, 
       ... 
       }; 
0

Si vous ne voulez pas participer explicitement les deux tables LINQ, vous pouvez créer une vue dans la base de données et de générer un modèle avec (à l'aide LinqToSQL Framework ou entités)?

+0

Database ne peut pas être changé :( – Vasilij

0

Je ne sais pas si cela s'applique à la solution dont vous avez besoin, mais avez-vous considéré une simple classe CustomerPaymentViewModel?

public class CustomerPaymentViewModel 
{ 
    public Customer { get; set; } 
    public Payment { get; set; } 
} 
+0

Je ne sais pas, comment mettre en œuvre une association entre mes classes dans votre exemple, et comment regarder une requête LINQ à cette nouvelle classe La quête principale est de laisser JOIN dans les coulisses. . – Vasilij

Questions connexes