0

テキスト フィールド PassFail が null/空であってはならないテーブルから (結合を使用して) レコードを取得しようとしていますが、構文に苦労しています。これまでに発生したエラーは、使用している構文が linq でサポートされていないことを示しています。

私の最近の試みは

Dim HW2Process = (From mi In dc.tblMainDatas
                            Join u In dc.tblUsers On u.UserNo Equals mi.RecdBy
                            Join fi In dc.tblHWs On fi.HWRef Equals mi.HWRef
                            Where mi.Ref.StartsWith(tb_HWRefFind.Text.Trim()) And mi.DateProcessed.HasValue = True And ((mi.PassFail <> "PASS") And (IsNothing(mi.PassFail) = False))
                            Select New With {.ID = mi.ID,
                                                .DateReceived = mi.DateRecd,
                                                .ReceivedBy = u.FullName,
                                                .SerialID = mi.SerialID,
                                                .LiveTest = mi.LiveTest,
                                                .DeployYear = mi. DeployYear,
                                                .ProductType = mi.ProductType,
                                                .HWRef = mi.HWRef,
                                                .HWName = fi.HWName,
                                                .MediaType = mi.MediaType,
                                                .MediaQuantity = mi.MediaQty})

基準は、mi.PassFail がヌル、空、または「合格」であってはならないことです。

どんな助けでも感謝します。

4

1 に答える 1

1

あなたが書く:

mi.DateProcessed.HasValue = True

Linq2SQL には、これに対する正しい翻訳がありません。次のように書く必要があります。

(Not (mi.DateProcessed Is Nothing))

ここでも同じだと思います:

(IsNothing(mi.PassFail) = False))

ここに表示されているものの翻訳が必要な場合は、次のようにする必要があります。

(Not (mi.PassFail Is Nothing))

私は実際にはVBではなく、C#をメインにしていますが、nullの値をチェックしたい場合は、私のメンションのように行う必要があるため、このエラーが発生すると思います。

于 2015-04-28T14:38:08.180 に答える