LINQ to Entities(SQL)で IsNullOrWhiteSpace が使えない場合の対処
LINQ to Entities / LINQ to SQL の Where 条件に IsNullOrWhiteSpace を使用すると下記の例外が発生します。System.NotSupportedException: 'メソッド 'Boolean IsNullOrWhiteSpace(System.String)' は LINQ to Entities では認識されないため、ストア式に変換できません。'
using(var db = new DbContext())
{
var userList = db.User.where(user => !(string.IsNullOrWhiteSpace(user.name)).ToList();//例外発生
///後略
}
認識されないものは仕方がないので、おとなしく以下のように書き換えました。
using(var db = new DbContext())
{
var userList = db.User.where(user => !( user.name == null || user.name.Trim() == string.Empty)).ToList();//例外発生しない
///後略
}