草庐IT

c# - LINQ 在 SQL 语句中生成额外的 IS NULL 条件

我正在编写一些LINQ来根据电子邮件获取记录,但是,生成的SQL包含一个额外的ISNULL条件,它不需要存在,因为我正在检查参数值在将条件添加到查询之前在代码中为null。我的LINQ代码是:if(email!=null){query=query.Where(r=>r.Email==email);}由此产生的SQL条件为:(([Extent1].[Email]=@p__linq__0)OR(([Extent1].[Email]ISNULL)AND(@p__linq__0ISNULL)))(([Extent1].[Email]ISNULL)AND(@p__linq__0ISNULL))就

c# - 如何使用 Linq to XML 检查 XML 子元素是否存在

如何使用linqtoxml检查IncomingConfig元素是否存在?10.100.101.185060tarektarekffffadfadffadsf 最佳答案 boolb=xdocument.Descendants("IncomingConfig").Any(); 关于c#-如何使用LinqtoXML检查XML子元素是否存在,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/

c# - 包含关键字的 Linq 不同记录

我需要根据汽车关键字搜索返回不同的记录列表,例如:“Alfa147”问题是,因为我有3辆“Alfa”汽车,它返回1+3条记录(Alfa和147结果似乎是1,Alfa结果似乎是3)编辑:SQL-Server查询看起来像这样:SELECTDISTINCTc.Id,c.Name/*,COUNT(NumberofAdsintheKeywordAdCategoriestablewiththose2keywords)*/FROMCategoriesAScINNERJOINKeywordAdCategoriesASkacONkac.Category_Id=c.IdINNERJOINKeywordAd

c# - 合并两个 Linq lambda 表达式

Expression>fn1=x=>x.PossibleSubPath.MyStringProperty;Expression>fn2=x=>x.Contains("someliteral");有没有办法创建一个新的lambda表达式,它基本上使用fn1的输出并将其用作fn2的输入?Expression>fnCombined=...我知道我可以一次创建函数,但问题是我正在编写一些通用代码,因此确实需要能够分别创建这两个函数,然后以Linq可以的方式组合它们在我的数据库对象(EntityFramework)上使用它们。 最佳答案 所以

c# - LINQ 与跳过和采取

我使用下面的代码从IEnumerable中获取一些项目,但它总是将源返回为null并计数为0,实际上IEnumerable中存在项目privatevoidGetItemsPrice(IEnumerableitems,intcustomerNumber){vara=items.Skip(2).Take(5);}当我尝试访问a时,它的计数为0。这里有什么问题吗? 最佳答案 请记住,代码中的变量a本身就是一个查询。它不是查询执行的结果。当您使用立即窗口查看查询时(实际上与延迟执行的查询有关,否则您将获得结果而不是查询),它将始终显示{Sy

c# - linq where 子句和计数导致空异常

下面的代码有效,除非p.School.SchoolName结果为null,在这种情况下它会导致NullReferenceException。if(ExistingUsers.Where(p=>p.StudentID==item.StaffID&&p.School.SchoolName==item.SchoolID).Count()>0){//Dostuff.}ExistingUsers是一个用户列表:publicListExistingUsers;这里是堆栈跟踪的相关部分:System.NullReferenceException:Objectreferencenotsettoanin

c# - Linq PredicateBuilder - 多个 OR

我正在尝试使用PredicateBuilder,如此处所述-http://www.albahari.com/nutshell/predicatebuilder.aspx下面的代码varpredicate=PredicateBuilder.False();predicate=predicate.Or(p=>p.Locality.Contains(criteria.Locality));predicate=predicate.Or(p=>p.Name.Contains(criteria.Name));predicate=predicate.Or(p=>p.Town.Contains(cri

c# - LINQ to SQL 值介于两个 double 值之间

我正在使用LINQtoSQL查询我的数据库,我有一个与此非常相似的查询:varresult=fromdb.MyTable.Where(d=>(double)d.Price>=minValue)我需要where子句有一个d.Proce>=minValue,和d.Price=(类似于T-SQLBETWEEN子句)。我该怎么做? 最佳答案 这个怎么样:varresult=fromdb.MyTable.Where(d=>(double)d.Price>=minValue&&(double)d.Price

c# - 使用 C# 使用 Linq 更新 XML

我的XML文件结构1TrueStarWarsFiguresLukeSkywalker通过ITEMID从XML中读取数据XDocumentxmlDoc=XDocument.Load(HttpContext.Current.Server.MapPath("data.xml"));varitems=fromiteminxmlDoc.Descendants("item")whereitem.Element("itemID").Value==itemIDselectnew{itemID=item.Element("itemID").Value,isGadget=bool.Parse(item.E

c# - Linq/Lambda OrderBy Delegate for List<string> of IP Addresses

给定Listips=newList();我需要按逻辑顺序对IP地址列表进行排序(即“192.168.0.2”出现在“192.168.0.100”之前)。当前(并且正确地,按字母顺序排列)如果列表包含:192.168.0.1192.168.0.2192.168.0.10192.168.0.200ips.OrderBy(p=>p)返回:192.168.0.1192.168.0.10192.168.0.2192.168.0.200 最佳答案 你需要做一个比较器:(已测试)classIPComparer:IComparer{publicin