nullでないレコードを見つけるためにLINQの正しい構文は何でしょうか?私は以下のコードを使用していますが、無駄です。LINQでnullでない
ありがとうございました。
var list = (from t in dal.table
where t.name != null);
nullでないレコードを見つけるためにLINQの正しい構文は何でしょうか?私は以下のコードを使用していますが、無駄です。LINQでnullでない
ありがとうございました。
var list = (from t in dal.table
where t.name != null);
select
を忘れました。
var list = (from t in dal.table
where t.name != null
select t);
101 C#のLINQ例: http://msdn.microsoft.com/en-us/vcsharp/aa336746
私は同じ奇妙な行動に遭遇しました。 C#のコードは
public DbSet<Document> Documents { get; set; }
List<Document> = Documents
.Where(d => d.BusinessId = 818)
.Where(d => d.CurrencyId != null)
.ToList();
ですが、生成されたSQL文がこれです:
exec sp_executesql N'SELECT
[Extent1].[DocumentId] AS [DocumentId],
[Extent1].[DateCreated] AS [DateCreated],
...
FROM [dbo].[Documents] AS [Extent1]
WHERE [Extent1].[BusinessId] = @p__linq__0',N'@p__linq__0 int',@p__linq__0=818
明らかにLINQは.Where(!D => d.CurrencyId = null)の句を無視します。次のように
私のソリューションでした:
List<Document> = Documents
.Where(d => d.BusinessId = 818)
.ToList() // <== Gel all documents and filter in memory
.Where(d => d.CurrencyId != null)
.ToList();
注:技術的には、我々はLINQのツーオブジェクトへのLINQのからSQLへのNULLでないフィルタを移動します。
我々はメモリにすべての文書を選択し、(デシベルレベルに代わりフィルタリングの)がフィルタリングので、非常に効率が悪いです。
私のケースでは、レコードの数は通常小さいので、ソリューションは私のために働いた。
これは、あなたのモデルが実際のデータベースと一致しないことを示唆します。つまり、モデルは 'CurrencyId'がヌル入力可能ではないデータベース用です。 – hvd
名前のデータ型は? – Clayton