Saya telah melihat banyak artikel tentang cara mengatasi masalah ini, semua terkait dengan CTP4, Atau menambahkan metode ekstensi saya sendiri.
Apakah ada cara menyertakan EF4 "resmi" untuk menggunakan ekspresi lambda di dalam include (untuk hubungan tingkat pertama dan juga tingkat ke-2 dan lebih banyak) atau apakah itu akhirnya tidak disertakan dalam RTM?
Itu ada satu - Saya akan senang belajar bagaimana melakukannya, karena menggunakan ekspresi lambda dalam kode saya sekarang (dengan # system.data.entity # system.data.linq) masih memberi saya:
Tidak dapat mengubah ekspresi lambda menjadi tipe 'string' karena ini bukan tipe delegasi pada:
var customers = from c in
context.Customers.Include(c=>c.Phone)
c#
entity-framework-4
lambda
Dani
sumber
sumber
Jawaban:
Versi RTM dari Entity Framework 4.1 sebenarnya menyertakan metode ekstensi dalam
EntityFramework.dll
file, untuk memuat dengan lambda melaluiInclude
fungsi tersebut. Cukup sertakan DLL dalam proyek Anda dan Anda harus dapat menulis kode seperti:var princesses1 = context.Princesses.Include(p => p.Unicorns).ToList();
Ingatlah untuk menambahkan pernyataan Import / Using untuk menyertakan namespace System.Data.Entity . Jika tidak, kompilator tidak dapat menemukan metode ekstensi. Misalnya:
using System.Data.Entity;
Lihat artikel blog tim ADO.NET ini untuk informasi lebih lanjut.
sumber
Meskipun ini tersirat dalam pertanyaan, bagi siapa pun yang memiliki masalah yang sama di mana mereka tidak dapat menggunakan lambda dengan. Termasuk, pastikan Anda memiliki ini:
using System.Data.Entity;
sumber
Tidak ada dukungan resmi untuk Sertakan dengan ekspresi lambda di RTM saat ini. Saya menggunakan ini .
Ketika kita berbicara tentang CTP4 yang kita maksud adalah Fitur Kerangka Kerja Entitas. Ini adalah API yang lebih baru dari EF4. Ini terutama mencakup Code First dan beberapa peningkatan lainnya.
sumber