Похоже, что Entity Framework не может сравнивать значение с нулем, если это нулевое значение хранится в переменной: http://data.uservoice.com/forums/72025-ado-net-entity-framework-ef-feature-suggestions/suggestions/1015361-incorrect-handling-of-null-variables-in-where-cl?ref=title
Так что я делаю что-то подобное, как предложили другие пользователиSO:
string description = null;
var transactions = from t in entities.Transactions
where description == null ? t.Description == null : t.Description == description
select t;
Хотя эта техника прекрасно работает при работе с int?или double ?, SQL Server Compact создает исключение EntityCommandExecutionException при использовании строк (как в примере выше).Исключение содержит следующие данные:
InnerException: System.Data.SqlServerCe.SqlCeException
Message=The specified argument value for the function is not valid. [ Argument # = 1,Name of function(if known) = isnull ]
Source=SQL Server Compact ADO.NET Data Provider
Есть идеи, почему я это понимаю и как я могу это преодолеть?