Tipe enum tidak dipetakan ke tabel DB

Saya menggunakan Kode EF 5.0 Pertama, di perpustakaan .NET 4. Mencoba menyetel anggota kelas menjadi tipe Enum, tetapi tidak bertahan di database, dan tidak ada pengecualian runtime yang terjadi saat EF membuat database berdasarkan kode.

Tentu saja, ketika saya mencoba menanyakan Enum itu:

var departments = db.Departments
                    .Where(dep => dep.Name == DepartmentNames.English);

Saya mendapat pengecualian yang mengatakan:

The specified type member 'Name' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.

Saya menggunakan contoh penggunaan Enum dari Microsoft: http://msdn.microsoft.com/en-us/data/hh859576.aspx

Apakah anggota Enum belum didukung? Apakah EF 5.0 berbeda ketika dihosting oleh lingkungan .NET 4 dibandingkan ketika dihosting oleh lingkungan .NET 5?


person Ofer Zelig    schedule 15.11.2012    source sumber


Jawaban (1)


Enum pertama kali diperkenalkan di komponen EF 5 yang ada di .NET Framework 4.5 (System.Data.Entity.dll). Jika Anda menggunakan EF5 tetapi target .NET Framework 4 tidak ada dukungan untuk enum karena tidak didukung oleh System.Data.Entity.dll yang merupakan bagian dari .NET Framework 4. Jadi, ya EF5 di .NET Framework 4 adalah dibatasi jika dibandingkan dengan EF5 di .NET Framework 4.5. Beberapa fitur lain yang tersedia saat Anda menargetkan .NET Framework 4.5 tetapi tidak tersedia saat Anda menargetkan .NET Framework 4 adalah tipe spasial, Fungsi Tabel Bernilai, prosedur penyimpanan yang mengembalikan beberapa kumpulan hasil, dan beberapa lainnya. Alternatifnya adalah pindah ke EF6 (rilis Alpha dikirimkan beberapa minggu yang lalu) yang tidak bergantung pada System.Data.Entity.dll dan oleh karena itu mendukung semua fitur yang dikirimkan dalam EF5 pada .NET Framework 4.5 dan .NET Framework 4 ditambah beberapa lebih lanjut (misalnya async di .NET Framework 4.5). EF6 adalah proyek sumber terbuka dari Microsoft dan Anda dapat menemukan semua detailnya di sini: http://entityframework.codeplex.com/

person Pawel    schedule 18.11.2012