草庐IT

LINQ_ENABLED

全部标签

c# - 具有多个 Contains/Any for RavenDB 的 Linq 查询

我有一个包含“标签”列表的文档类。像这样的东西:classItem{stringName{get;set;}ListTags{get;set;}}现在我想为RavenDB创建一个查询,将所有按标签列表过滤的项目交给我。在使用EntityFramework时,我设法通过这样的方式做到了这一点:varquery=GetQueryable();foreach(vartagintags){query=query.Where(i=>i.Tags.Contains(tag));}但是,这似乎不适用于RavenDB,很可能是因为不支持包含。我也尝试使用Any,(Where(i=>i.Tags.Any

c# - Entity Framework /Linq 表达式从字符串转换为 int

我有一个像这样的表达式:varvalues=Enumerable.Range(1,2);returnmessage=>message.Properties.Any(p=>p.Key==name&&int.Parse(p.Value)>=values[0]&&int.Parse(p.Value)这可以正常编译,但是当它访问数据库时会抛出异常'LINQtoEntitiesdoesnotrecognizethemethod'Int32Parse(System.String)'method,andthismethodcannotbetranslatedintoastoreexpression'

c# - 最短公共(public)前缀的 LINQ 表达式

谁能帮我用一个很好的LINQ表达式来转换另一个列表中的字符串列表,该列表只包含字符串的最短不同公共(public)前缀?前缀的分隔符是..示例:["A","A.B.D","A","A.B","E","F.E","F","B.C"]转到:["A","E","F","B.C"]已删除:“A.B.D”和“A.B”,因为前缀“A”已经在列表中“A”因为是重复的“F.E”因为“F”已经在列表中谢谢! 最佳答案 给你:fromsetin(fromiteminlistselectitem.Split('.')).GroupBy(x=>x[0])s

c# - Linq to Entities 中的动态 where 子句 (OR)

在帖子中here我学习了如何使用Linq的延迟执行来构建动态查询。但查询实际上是使用WHERE条件的AND串联。如何使用OR逻辑实现相同的查询?由于Flags枚举,查询应该搜索Username、WindowsUsername或两者:publicUserGetUser(IdentifierTypetype,stringidentifier){using(varcontext=contextFactory.Invoke()){varquery=fromuincontext.Usersselectu;if(type.HasFlag(IdentifierType.Username))query

c# - 将我自己的方法与 LINQ to Entities 结合使用

我有一个使用LINQ的项目,我想在其中使用我自己的方法。此NoWhiteSpaces方法应返回不含空格的上部字符串。publicstaticclassLittleExtensions{publicstaticstringNoWhiteSpaces(thisStrings){returnRegex.Replace(s,@"\s",string.Empty).ToUpper();}}当我想将此方法与LINQ一起使用时,如下所示:staticvoidGetHaendler(){using(varriaService=newgkmRia()){varhladany="someone";varh

c# - LINQ-to-SQL Table<T>.Attach 有什么作用?

LINQ-to-SQL方法到底是做什么的Table.Attach()和Table.AttachAll()正确使用它们的示例/情况是什么?此外,请查看此相关问题:HowtodetachaLINQ-to-SQLdataobjectfromtheDataContext'strackingmechanism? 最佳答案 它在将数据序列化/反序列化到其他层的多层应用程序中非常有用。简短版:Attach()告诉DataContext该实体不是新实体(对于insert),而是一个更新后的实体,它应该是在数据库中更新。长版:您有一个DataCont

c# - 是否可以在 LINQ 中表达此代码?

我正在阅读一本面向初学者的C#书籍,在每一章的末尾,都有根据所学类(class)回答的练习。其中一个练习是这样的:(不是确切的措辞)编写一个程序,接受一个int作为数组长度,以及数组的值。然后会打印:"0"如果数组没有按升序排序。如果已排序,则为“1”。而且,"2"如果已经排序,但是有重复。示例://SortedInput:1,2,3,5Print:1//NotsortedInput:2,1,3,6Print:0//Sorted,butwithduplicatesInput:2,2,3,7Print:2我不知道我这里的逻辑是否绝对,但不知何故它起作用了,我使用这段代码以我的方式完成了它

c# - Linq - 带点符号的左外连接

我如何使用点符号在linq中进行左外连接?这是查询表达式:varquery=fromuindb.Usersjoindindb.Defectsonu.userIDequalsd.userIDintodefectsGroupfromdindefectsGroup.DefaultIfEmpty()selectnew{u,d};这是我尝试过的:varquery2=db.Users.GroupJoin(db.Defects.DefaultIfEmpty(),u=>u.userID,d=>d.userID,(user,defect)=>new{user,defect});但缺陷显示为IEnumer

c# - 使用 Linq 从其他集合中存在键的集合中删除?

使用Linq进行集合减法的正确方法是什么?我有一个8000多家银行的列表,我想根据路由号码删除其中的一部分。该部分在另一个列表中,路由号码是两者的关键属性。这是一个简化:publicclassBank{publicstringRoutingNumber{get;set;}publicstringName{get;set;}}varremoveThese=newList(){"111","444","777"};varbanks=newList(){newBank(){RoutingNumber="111",Name="FirstFederal"},newBank(){RoutingNu

c# - 当可能存在空集时如何进行 Linq 聚合?

我有一个Things的Linq集合,其中Thing有一个Amount(十进制)属性。我正在尝试针对事物的某个子集对此进行汇总:vartotal=myThings.Sum(t=>t.Amount);而且效果很好。但后来我添加了一个条件,结果没有结果:vartotal=myThings.Where(t=>t.OtherProperty==123).Sum(t=>t.Amount);我得到的不是total=0或null,而是一个错误:System.InvalidOperationException:ThenullvaluecannotbeassignedtoamemberwithtypeSy