Visual Studio 2010 SP1 / .NET Framework 4.0
LINQ to SQL 語法,在查詢中直接 New 一個標記為 Table 的類別,會產生錯誤:
System.NotSupportedException: 不允許在查詢中明確建構實體類型
LINQ to SQL 設計工具產生的程式碼:
<Global.System.Data.Linq.Mapping.TableAttribute(Name:="dbo.Table1")> _
Partial Public Class Table1
Implements System.ComponentModel.INotifyPropertyChanging,
System.ComponentModel.INotifyPropertyChanged
'內容省略
End Class
查詢資料的程式碼:
Using sd As New DataClasses1()
Dim T1 = (From a In sd.Table1 Where a.Column1 = "Sample" _
Select New Table1() With _
{.Column1 = a.Column1, .Column2 = a.Column2}
).FirstOrDefault()
End Using
把類別開頭的 TableAttribute 屬性拿掉,就不會產生錯誤:
解決方法:
自訂類別,並繼承設計工具產生的類別
Public Class Table1_ext
Inherits Table1
End Class
查詢資料的程式碼:
Using sd As New DataClasses1()
Dim T1 = (From a In sd.Table1 Where a.Column1 = "Sample" _
Select New Table1_ext() With _
{.Column1 = a.Column1, .Column2 = a.Column2}
).FirstOrDefault()
End Using
--
▃▅▇▆▄ ▆▂▃ `
逝去感情如何能留住,半點癡情遺留殊不易,██▅▇▄▃ ▇▃▂" .
█████████▃i ▁▄▇
更多悽悽慘慘的遭遇…………██▆▃ █▅▆▃ˍ▄*
◢ ▂█▄▇▅▂▌.
我不知道,王~八~蛋~~! ▂▆███ █▄▃ 。fumizuki。Check。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.176.149.188