草庐IT

LINQ_ENABLED

全部标签

c# - 了解 LINQ to SQL 中的 .AsEnumerable()

给定以下LINQtoSQL查询:vartest=fromiinImportswherei.IsActiveselecti;解释后的SQL语句为:SELECT[t0].[id]AS[Id]....FROM[Imports]AS[t0]WHERE[t0].[isActive]=1假设我想在无法转换为SQL的选择中执行一些操作。据我了解,实现此目的的常规方法是执行AsEnumerable()从而将其转换为可用对象。鉴于此更新的代码:vartest=fromiinImports.AsEnumerable()wherei.IsActiveselectnew{//Makesomemethodcal

c# - 使用 LINQ 在 OrderBy 中自定义排序逻辑

在我希望以下划线“_”开头的项目位于列表底部的情况下,对字符串列表进行排序的正确方法是什么,否则一切都是按字母顺序排列的。现在我正在做这样的事情,autoList.OrderBy(a=>a.StartsWith("_")?"ZZZZZZ"+a:a) 最佳答案 如果您想要自定义排序,但不想提供比较器,您可以使用它-sql样式:autoList.OrderBy(a=>a.StartsWith("_")?2:1).ThenBy(a=>a); 关于c#-使用LINQ在OrderBy中自定义排序逻

c# - 使用 LINQ 在 OrderBy 中自定义排序逻辑

在我希望以下划线“_”开头的项目位于列表底部的情况下,对字符串列表进行排序的正确方法是什么,否则一切都是按字母顺序排列的。现在我正在做这样的事情,autoList.OrderBy(a=>a.StartsWith("_")?"ZZZZZZ"+a:a) 最佳答案 如果您想要自定义排序,但不想提供比较器,您可以使用它-sql样式:autoList.OrderBy(a=>a.StartsWith("_")?2:1).ThenBy(a=>a); 关于c#-使用LINQ在OrderBy中自定义排序逻

c# - LINQ to Entities 中的 "NOT IN"子句

无论如何,我是否可以创建一个notin子句,就像我在LinqtoEntities中的SQLServer中那样? 最佳答案 如果您使用内存中的集合作为过滤器,最好使用Contains()的否定。请注意,如果列表太长,这可能会失败,在这种情况下,您将需要选择另一种策略(请参阅下文了解如何使用完全面向数据库的查询的策略)。varexceptionList=newList{"exception1","exception2"};varquery=myEntities.MyEntity.Select(e=>e.Name).Where(e=>!e

c# - LINQ to Entities 中的 "NOT IN"子句

无论如何,我是否可以创建一个notin子句,就像我在LinqtoEntities中的SQLServer中那样? 最佳答案 如果您使用内存中的集合作为过滤器,最好使用Contains()的否定。请注意,如果列表太长,这可能会失败,在这种情况下,您将需要选择另一种策略(请参阅下文了解如何使用完全面向数据库的查询的策略)。varexceptionList=newList{"exception1","exception2"};varquery=myEntities.MyEntity.Select(e=>e.Name).Where(e=>!e

c# - 相交 LINQ 查询

如果我有一个IEnumerable,其中ClassA公开了一个long类型的ID属性。是否可以使用Linq查询获取ID属于第二个IEnumerable的所有ClassA实例?也就是说,这可以做到吗?IEnumerable=original.Intersect(idsToFind....)?其中original是IEnumerableidsToFind是IEnumerable. 最佳答案 是的。正如其他人回答的那样,您可以使用Where,但对于大型集合来说效率极低。如果性能是一个问题,您可以调用Join:varresults=orig

c# - 相交 LINQ 查询

如果我有一个IEnumerable,其中ClassA公开了一个long类型的ID属性。是否可以使用Linq查询获取ID属于第二个IEnumerable的所有ClassA实例?也就是说,这可以做到吗?IEnumerable=original.Intersect(idsToFind....)?其中original是IEnumerableidsToFind是IEnumerable. 最佳答案 是的。正如其他人回答的那样,您可以使用Where,但对于大型集合来说效率极低。如果性能是一个问题,您可以调用Join:varresults=orig

c# - 为什么没有 Linq 方法通过谓词返回不同的值?

我想获取列表中的不同值,但不是通过标准相等比较。我想做的是这样的:returnmyList.Distinct((x,y)=>x.Url==y.Url);我不能,Linq中没有扩展方法可以执行此操作-只有一个采用IEqualityComparer的扩展方法。我可以用这个破解它:returnmyList.GroupBy(x=>x.Url).Select(g=>g.First());但这看起来很乱。它也不会做同样的事情-我只能在这里使用它,因为我只有一个key。我也可以添加我自己的:publicstaticIEnumerableDistinct(thisIEnumerableinput,Fu

c# - 为什么没有 Linq 方法通过谓词返回不同的值?

我想获取列表中的不同值,但不是通过标准相等比较。我想做的是这样的:returnmyList.Distinct((x,y)=>x.Url==y.Url);我不能,Linq中没有扩展方法可以执行此操作-只有一个采用IEqualityComparer的扩展方法。我可以用这个破解它:returnmyList.GroupBy(x=>x.Url).Select(g=>g.First());但这看起来很乱。它也不会做同样的事情-我只能在这里使用它,因为我只有一个key。我也可以添加我自己的:publicstaticIEnumerableDistinct(thisIEnumerableinput,Fu

c# - 使用 LINQ to SQL 是否有助于防止 SQL 注入(inject)

我正在建立一个公共(public)站点,我首先想到的是SQL注入(inject)。我有一些要保存的文本字段,并且正在使用linq更新/写入数据库。我使用linq安全吗?此示例正在创建用户帐户。Data.MemberRegistrationDataContextcontext=newMemberRegistrationDataContext();Data.tbl_Member_UserProfileprofile=newtbl_Member_UserProfile();profile.SSN=Convert.ToDecimal(Session["tempMemberSSN_Registr