EntityFrameworkを勉強したてで、色々やっているのだけれど、EntityFrameworkのテーブルクラスと自作クラスを結合しようとしたら、ToList()の部分でエラーになる。
エラーになるコード
Dim a = From t In _ef.DB_Table
Join c In EnumableMyClass
On t.Key1 Equals c.MyClassKey1
Dim a_list = a.ToList()
Exception
An exception of type 'System.NotSupportedException' occurred in EntityFramework.SqlServer.dll but was not handled in user code
Additional information: Unable to create a constant value of type 'XXXXX'. Only primitive types or enumeration types are supported in this context.
解決策は、EntytiFrameworkのLinq結合はEntityFrameworkだけででやり、その後、自作クラスと結合するやり方でないとダメである結論に至った。
エラーにならないコード
'EntityFrameworkテーブルと自作クラスは別々に扱う
Dim a = From t In _ef.DB_Table
Dim a_list = a.ToList()
Dim b = From t In a_list
Join c In EnumableMyClass
On t.Key1 Equals c.MyClassKey1
Dim b_list = b.ToList()