【发布时间】:2011-09-15 12:21:39
【问题描述】:
我有这样的查询...下面...我想检查空条件...
如果姓氏(输入的名字)为空,请不要检查这个条件......
report.member_Lastname.StartsWith(lastname)
如果 cardnum 为空,则不检查此条件
&& report.member_CardNum == cardnum
我正在使用 linq to 实体,我没有使用 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
};
你们能否为此提出任何想法和任何代码示例 sn-p..
在此先感谢....
修改:
if(!string.IsNullOrEmpty(lastname))
query = query.Where(r => r.member_Lastname == lastname);
我想要类似上面的东西,我知道这个查询使用 linq to sql,但我正在使用 linq to entity
【问题讨论】:
-
&& (report.member_CardNum == cardnum || string.IsNullOrEmpty(cardnum))
-
@zespri 不适用于您的情况。
-
“不起作用”什么也没告诉我。请说得更具体一些,我看不懂你的想法。
-
@zespri 我已经尝试过您在上面指定的条件,但它对我不起作用..你清楚..
-
不。我指的是“不起作用”这一事实并不是对所发生事情的很好描述。它没有提供尽可能多的信息。我多次将这种模式与 EF 一起使用,并且我知道它有效。我知道它不适合你。您需要更具体才能获得进一步的帮助。
标签: c# .net linq entity-framework linq-to-entities