2016-07-04 5 views
2

複雑なクエリを作成し、varchar型の列のデータをフィルタリングしようとすると、sqlコードで必要な変数を変換するプロバイダが "where"ブロックになく、変数を宣言します型NVARCHARの値を割り当てます。ブロック "where"はその変数の検索を追加します。linq2db varcharフィールドの文字列を検索

-- SqlServer.2008 
DECLARE @cashRegisterNumber NVarChar -- String 
SET  @cashRegisterNumber = N'0705311' 

デフォルトのnvarchar型は長さが1であるため、最初の文字を探します。どのように克服し、全体のラインを見えるようにする?

+0

こんにちはとのStackOverflowへの歓迎します。ヘルプページ、特に[ここではどのトピックについて聞かせていただけますか?](http://stackoverflow.com/help/on-topic)と[質問しないでください。」](http://stackoverflow.com/help/dont-ask)。さらに重要なことは、[Stack Overflow question checklist](http://meta.stackexchange.com/q/156810/204922)をお読みください。また、[最小、完全、および検証可能な例](http://stackoverflow.com/help/mcve)についても知りたいことがあります。 – lokusking

答えて

2

はSql.AsSql方法試してみてください。

var str = "0705311"; 

...Where(t => t.Field1 == Sql.AsSql(str)); 
+0

それは仕事ではありません。 Converterはstring型の変数を間違って宣言します。値をwhereブロックに直接追加すると、すべては問題ありませんが、解決策ではありません。 – Redliru