我有这样的查询......下面......我想检查空状态......
如果姓氏(输入的名字)是空的,请不要检查这个条件...
report.member_Lastname.StartsWith(lastname)
如果cardnum是空的,请不要检查这种情况
&& report.member_CardNum == cardnum
我正在使用linq实体,而我没有使用linq来实现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
};
你们是否会为此提出任何想法和任何代码示例代码段。
非常感谢...
修改:
if(!string.IsNullOrEmpty(lastname))
query = query.Where(r => r.member_Lastname == lastname);
我想要上面的东西,我知道这个查询使用linq到sql但我使用linq到实体
答案 0 :(得分:0)
&安培;&安培;工作在第一次失败时停止,因此你可以写
...
where
(report.member_Lastname != null && report.member_Lastname.StartsWith(lastname))
&& ...
与||相同首先是true,所以如果你想让Lastname为null或者以lastname开头,你可以使用
...
where
(report.member_Lastname == null || report.member_Lastname.StartsWith(lastname))
&& ...
与cardnum相同,无论你想要什么。要获得可以使用的值
report.member_Lastname ?? "yourNullDefault"
假设member_Lastname是一个字符串