Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk mengembalikan data dari LINQ ke SQL tanpa kesilapan kompilasi?

Bagaimana untuk mengembalikan data dari LINQ ke SQL tanpa kesilapan kompilasi?

Barbara Streisand
Lepaskan: 2025-01-28 00:31:10
asal
991 orang telah melayarinya

How to Return Joined Data from Linq to SQL Without Compilation Errors?

kembali ke jenis jenis tanpa nama dari LINQ ke SQL

Apabila menggunakan LINQ ke SQL untuk menanyakan beberapa jadual, kembali hasil jenis tanpa nama mungkin membawa cabaran. Memandangkan adegan, anda mempunyai meja anjing (termasuk nama, umur, dan breedid) dan baka meja (termasuk baka dan name). Ia mudah untuk mendapatkan semua anjing:

bagaimanapun, cuba menggunakan jenis tanpa nama untuk mengembalikan anjing dengan nama baka yang sepadan akan menyebabkan kesilapan penyusunan:

1

2

3

4

5

6

7

8

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;

}

Salin selepas log masuk

Ini kerana LINQ ke SQL mengharapkan untuk mengembalikan jenis anjing, tetapi pertanyaan menghasilkan jenis tanpa nama.

1

2

3

4

5

6

7

8

9

10

11

12

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;

}

Salin selepas log masuk

Gunakan kelas tersuai

Untuk mengatasi masalah ini, penyelesaiannya adalah untuk membuat kelas tersuai untuk mewakili hasil yang diperlukan:

Kaedah ini mencipta kelas dogwithbreed yang mengandungi sifat anjing dan nama baka. Kemudian, tanya contoh kelas tersuai ini, yang boleh digunakan untuk mengakses data yang diperlukan.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

public class DogWithBreed

{

    public Dog Dog { get; set; }

    public string BreedName { get; set; }

}

 

public IQueryable<DogWithBreed> 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 DogWithBreed()

                        {

                            Dog = d,

                            BreedName = b.BreedName

                        };

    return result;

}

Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk mengembalikan data dari LINQ ke SQL tanpa kesilapan kompilasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan