Menyelesaikan masalah LINQ 'System.String ToString()' kepada Pengecualian Entiti
Semasa pemindahan pangkalan data daripada MySQL ke SQL Server, menggunakan LINQ ke Entiti mungkin mencetuskan ralat ini:
<code>LINQ to Entities does not recognize the method 'System.String ToString()' method, and this method cannot be translated into a store expression.</code>
Ini berlaku kerana LINQ kepada Entiti tidak mempunyai persamaan SQL langsung untuk kaedah ToString()
.
Penyelesaian
Penyelesaian melibatkan pra-memproses penukaran rentetan:
<code class="language-csharp">var strItem = item.Key.ToString(); IQueryable<entity> pages = from p in context.pages where p.Serial == strItem select p;</code>
Dengan melakukan ToString()
terlebih dahulu, penukaran berlaku dalam ingatan, di luar pertanyaan pangkalan data.
Pertimbangan Tambahan:
SqlFunctions
kelas pembantu untuk penukaran rentetan serasi SQL.ToString()
berlebihan. Perbandingan langsung mungkin memadai, menghapuskan ralat sepenuhnya.Atas ialah kandungan terperinci Mengapakah LINQ kepada Entiti Melemparkan Pengecualian 'System.String ToString()' Semasa Migrasi MySQL ke SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!