Menggunakan contoh sederhana di bawah ini, apa cara terbaik untuk mengembalikan hasil dari beberapa tabel menggunakan Linq ke SQL?
Katakanlah saya punya dua tabel:
Dogs: Name, Age, BreedId
Breeds: BreedId, BreedName
Saya ingin mengembalikan semua anjing dengan mereka BreedName
. Saya harus membuat semua anjing menggunakan sesuatu seperti ini tanpa masalah:
public IQueryable<Dog> GetDogs()
{
var db = new DogDataContext(ConnectString);
var result = from d in db.Dogs
join b in db.Breeds on d.BreedId equals b.BreedId
select d;
return result;
}
Tetapi jika saya ingin anjing ras dan coba ini, saya punya masalah:
public IQueryable<Dog> GetDogsWithBreedNames()
{
var db = new DogDataContext(ConnectString);
var result = from d in db.Dogs
join b in db.Breeds on d.BreedId equals b.BreedId
select new
{
Name = d.Name,
BreedName = b.BreedName
};
return result;
}
Sekarang saya menyadari bahwa kompiler tidak akan membiarkan saya mengembalikan satu set jenis anonim karena itu mengharapkan Anjing, tetapi apakah ada cara untuk mengembalikan ini tanpa harus membuat jenis kustom? Atau apakah saya harus membuat kelas sendiri untuk DogsWithBreedNames
dan menentukan jenis itu di pilih? Atau ada cara lain yang lebih mudah?
foreach (var cust in query) Console.WriteLine("id = {0}, City = {1}", cust.CustomerID, cust.City);