SQL Serverへ接続。
Linq to EntitiesでCastってできなかったっけ?
文字列(char)で数字が格納されているのを、C#からはintで比較したい。
Linq to Entities内でユーザー定義メソッドを使って変換しておこうとしたが ユーザー定義メソッドはSQLに変換できないため、Linq to Entitiesでは使えず以下のような例外が発生する。
「メソッド '〇〇〇(〇〇〇)' は LINQ to Entities では認識されないため、ストア式に変換できません。」
Convert.ToInt32を試す→だめだった…
↓その後...(´・ω・`)
結局見つけきれず、SQLを直接書いて(SQL ServerのCASTを使って)終わった…。。
StringBuilderでクエリを用意。。
WHERE ~
AND CAST(COLNAME AS INT) = @NUMBER
~
@NUMBERにはC#側からint型のパラメータをセット。
参考
CAST および CONVERT (Transact-SQL)
https://docs.microsoft.com/ja-jp/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-2017