2011-09-15 23 views
0

に参加する...私はヌル状態をチェックしたい複数を使用してentitesにLINQでは...私はこのようなクエリを持っている...以下

をヌル状態を確認します条件...

report.member_Lastname.StartsWith(lastname) 

cardnumが空いけない。この状態を確認

&& report.member_CardNum == cardnum 

であれば、私はエンティティにLINQを使用していると私は

をLINQ to SQLのを使用していません
var memberreport = from report in eclipse.members 
        join memtomship in eclipse.membertomships on report.member_Id equals memtomship.member_Id 
        join mshoption in eclipse.mshipoptions on memtomship.mshipOption_Id equals mshoption.mshipOption_Id 
        join membershiptypes in eclipse.mshiptypes on mshoption.mshipType_Id equals membershiptypes.mshipType_Id 
        join membershipstatustypes in eclipse.mshipstatustypes on memtomship.mshipStatusType_Id equals membershipstatustypes.mshipStatusType_Id        
        where report.member_Lastname.StartsWith(lastname) 
         && report.member_CardNum == cardnum 
         && report.member_Postcode.StartsWith(postcode) 
         && report.member_Reference.StartsWith(refernce) 
         && report.member_Gender.StartsWith(gender) 
         && membershiptypes.mshipType_Name.StartsWith(membershiptype) 
         && membershipstatustypes.mshipStatusType_Name.StartsWith(membershipstatustypesa) 
         && string.Compare(report.member_Dob,maxage) >= 0 
         && string.Compare(report.member_Dob, minage)< 0 
        select new 
        { 
         report.member_Id, 
         report.member_Lastname, 
         report.member_Firstname, 
         report.member_Postcode, 
         report.member_Reference, 
         report.member_CardNum, 
         report.member_IsBiometric, 
         report.member_Dob, 
         membershiptypes.mshipType_Name, 
         membershipstatustypes.mshipStatusType_Name, 
         memtomship.memberToMship_EndDate 
        }; 

君たちPLSが

..事前に感謝を任意のアイデアと、このため任意のコードサンプルスニペットを示唆して....

変更になります。

if(!string.IsNullOrEmpty(lastname)) 
    query = query.Where(r => r.member_Lastname == lastname); 

私が何かをしたいです上記のように、私はlinq SQLを使用して知っているが、私はエンティティにlinqを使用している

+0

&&(report.member_CardNum == cardnum || string.IsNullOrEmpty(cardnum))あなたの状態で作業しない@zespri –

+0

。 –

+0

「うまくいきません」と表示されません。もっと具体的に言えば、私はあなたの心を読むことができません。 –

答えて

0

& &最初のfalseで作業が停止して書き込みできます

...       
where 
    (report.member_Lastname != null && report.member_Lastname.StartsWith(lastname)) 
&& ... 

と同じです。||そして最初の真の、あなたは姓がnullまたはstartwith姓になりたい場合は、cardnumでもどこでもあなたがそれをしたいと同じ

...       
where 
    (report.member_Lastname == null || report.member_Lastname.StartsWith(lastname)) 
&& ... 

を使用できるように。値を取得するには、あなたがmember_Lastnameを仮定すると、文字列である

report.member_Lastname ?? "yourNullDefault" 

使用することができます

+0

は、入力された名前をチェックする方法はありますかどうかは、データベース内のテーブルフィールドの値をチェックしていません。 –

+0

ここに入力された名前は何ですか、それが正しいかどうかによって異なります。 – Carsten

+0

私の変更されたコードを参照してください私は上記のデータベーステーブルのフィールドの値をチェックしていないかどうかはnullかどうか、私はそれが何かのように名前を入力しているかどうかをチェックしたいと思います。 –

関連する問題