私はこの1つの上に頭を傷つけています、なぜこれが起こっているのか不思議です。Nullable intではフィルタがクラッシュしますが、直接クエリではクラッシュしませんか? Linq2SQL
以下のコードは、最初の例でうまくいきます。しかし、後者の2つはそうではありません。
これらは私のLinqPadで実行され、使用している列は(整数の)NULL可能ですが、主キーではありません。私は将来の挿入のためにテーブルのデフォルトを0にしましたが、履歴項目には影響しません。
私のプロジェクトコードには、このフィールドから意図的にヌルを除外したラインがありますが、これはうまく動作しませんが、これはどこかで発生し、すべての呼び出し元にデータレイヤーでトラップしたいと思っています。
編集:タスクの次のスキーマを使用してSQLサーバー2008デシベルのテーブルです:
CREATE TABLE [dbo].[Tasks](
[TaskID] [int] IDENTITY(1,1) NOT NULL,
[JobHeaderID] [int] NOT NULL,
[Sequence] [int] NOT NULL,
[CreateBy] [int] NOT NULL,
[CreateOn] [datetime2](7) NULL,
[EditOn] [datetime2](7) NULL,
[EditBy] [int] NULL,
[DeleteOn] [datetime2](7) NULL,
[DeleteBy] [int] NULL,
[VehicleSaleID] [int] NULL CONSTRAINT [DF_Tasks_VehicleSaleID] DEFAULT ((0))
)
ありがたく受け取ったすべてのヘルプ!代わりにあなたの方法、使用Expression(Of Func(Of Tasks, Boolean))
からFunc
パラメータの
Sub Main
Dim x = Tasks.Where(Function(s) s.VehicleSaleID = 142).FirstOrDefault
x.dump ' I work
Dim t2 = find(Function(i) i.VehicleSaleID = 142) 'I do not. Why?
t2.dump
Dim t = find(Function(i) i.VehicleSaleID = 142) 'I do not. Why?
t.dump
End Sub
Private Function Find(filter As Func(Of Tasks, Boolean)) As Tasks
Return Tasks.Where(filter).FirstOrDefault
End Function
Private Function Find2(filter As Func(Of Tasks, Boolean)) As Tasks
Dim _t = Tasks.tolist
Return _t.Where(filter).FirstOrDefault
End Function
「タスク」とは – Blorgbeard
Blorgbeardを指摘してくれてありがとう! –