2009-08-14 5 views
1

Wenn ich zwei Business-Objekte habe, mit einem verwandten Bereich (Fremdschlüssel CountryId), wie zeige ich den Countrynamen anstelle des CountryId wenn ich eine Liste der Mitarbeiter-Klasse angezeigt werden?Fremdschlüssel in verwandt Business Objects

public class Employee 
{ 
    public int Id { get; set; } 
    public string FirstName { get; set; } 
    public string FamilyName { get; set; } 
    public int CountryId { get; set; } 
} 

public class Country 
{ 
    public int Id { get; set; } 
    public string CountryName { get; set; } 
} 
+0

Sie müssen genauer sein. ASP.NET, WinForms, WPF, Silverlight oder was? Welche Komponente du für die Anzeige verwendest, etc. –

Antwort

0

Wenn Sie eine Liste der Mitarbeiter und eine Liste aller Länder haben, könnten Sie LINQ verwenden sie zu verbinden und ein anonymes Objekt mit den Eigenschaften erstellen Sie benötigen:

List<Employee> employees = // Get list of all employees 
List<Country> countries = // Get list of all countries 

var employeesWithCountryName = 
from e in employees 
join c in countries on e.CountryID = c.Id 
select new { 
    Id = e.Id, 
    FirstName = e.FirstName, 
    FamilyName = e.FamilyName, 
    CountryId = e.CountryId, 
    CountryName = c.CountryName 
} 
+0

Danke, das sieht nach dem einfachsten Weg aus, dies zu erreichen. Ich wollte eine Instanz der Country-Klasse innerhalb der Employee-Klasse erstellen, aber die linq-Option sieht viel einfacher aus! –

0

Wenn Sie mit ein ORM, dann erlauben die meisten von ihnen Ihnen, die Beziehung zu navigieren, um den Ländernamen und alle anderen Eigenschaften des Landes zu erhalten.

In der Datenbank würde es eine Verbindung erfordern.

Verwandte Themen