Rangka Kerja Entiti LINQ Ralat: "Tidak dapat membuat contoh entiti"
Apabila menggunakan LINQ ke entiti (Linq-to-entities) dengan rangka entiti, sangat penting untuk mematuhi peraturan unjuran tertentu. Kesalahan biasa timbul ketika cuba membuat contoh entiti baru secara langsung dalam pertanyaan LINQ.Pertimbangkan senario ini: pertanyaan yang direka untuk memilih hanya harta
dari jadual Name
membuang ralat "tidak dapat membuat entiti contoh" jika ia cuba untuk memproyeksikan ke dalam entiti Product
. Product
) tidak dibenarkan. Penyelesaian ini melibatkan memproyeksikan sama ada jenis tanpa nama atau objek pemindahan data (DTO). Product
menggunakan jenis tanpa nama untuk unjuran:
<code class="language-csharp">public IQueryable<object> GetProducts(int categoryID) { return from p in db.Products where p.CategoryID == categoryID select new { Name = p.Name }; }</code>
. Name
Menggunakan DTOS untuk unjuran:
<code class="language-csharp">public class ProductDTO { public string Name { get; set; } // Add other properties as needed from the Product entity } public IQueryable<ProductDTO> GetProducts(int categoryID) { return from p in db.Products where p.CategoryID == categoryID select new ProductDTO { Name = p.Name }; }</code>
menyediakan cara berstruktur untuk menerima data yang diunjurkan. Ini biasanya lebih disukai untuk keselamatan dan penyelenggaraan jenis yang lebih baik. ProductDTO
Atas ialah kandungan terperinci Kenapa Linq ke entiti membuang ralat 'tidak dapat membina entiti' semasa unjuran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!