【c# – PLINQ查询中的评估顺序是什么?】教程文章相关的互联网学习教程文章

c#-通用基类的通用存储库,并通过键查询查找【代码】

我想做的事情非常简单-我想创建一个通用存储库,其中generic是通用基础实体,而Entity上的generic设置密钥类型.迷惑?别这样,让我们??看一下代码:public interface IEntity<TKey> {TKey Id { get; set; }DateTime Create { get; set; }DateTime? Storno { get; set; } }public class Entity<TKey> : IEntity<TKey> {public TKey Id { get; set; }public DateTime Create { get; set; }public DateTime? Storno { get; set; } }publi...

首页> C#>如何为我的LINQ查询创建自定义存储表达式【代码】

首先让我解释一下我要完成的工作. 我正在使用使用实体框架与SQL Server数据库进行通信的C#ASP.NET MVC 5项目.大多数查询都使用linq进行查询.在前端站点的各个地方,我正在显示记录列表,并且需要提供通过搜索栏搜索这些记录的方法.现在的最初想法是允许用户输入搜索词组,并用空格将关键字隔开,这些关键字用于匹配表记录中字段的任何组合. 例如,说我对用户表的搜索是“ John Doe”.考虑这些是此表中的记录:uFirstName uLastName -...

首页> C#>如何查询实体框架中的名字和姓氏?【代码】

我想要一个相当智能的搜索框,用于按人的名字查找对象.在linq中,它看起来像这样:users = users.Where(m => m.FirstName.Contains(query) || m.LastName.Contains(query) || (m.FirstName + " " + m.LastName).Contains(query) || (m.LastName + " " + m.FirstName).Contains(query) || (m.LastName + ", " + m.FirstName).Contains(query));但这似乎是做事的一种坏方法,而且我真的不确定Linq如何降低性能.这类声明是否还可以,或者是...

C#-LINQ需要40秒钟才能结束查询-性能【代码】

我正在拨打本地网络之外的外部数据库,但是查询需要40秒才能结束. 我正在使用edmx拨打电话.String Example = "Example"; var Result = EDMXEntity.Entities.Where(x => (x.Name.ToString().ToLower().Contains(Example.ToLower()))).Take(50).ToList();当前代码感谢Szer:var Result = EDMXEntity.Entities.Where(x => SqlFunctions.PatIndex(x.Name.ToString().ToLower(), Example.ToLower()) > 0).Take(50).ToList();解决方法:我以...

c#-NEST弹性搜索中的Lambda查询具有过滤器和值的数组【代码】

从两个包含过滤器名称和过滤器值的数组Filter []和Value [] 我需要生成一个动态的lambda查询,在其上应用过滤器和值数组. 与此类似,但可以动态应用所有数组值.var searchResults = client.Search<Job>(s => s.Type("job").Size(size).Filter(f =>f.Term(Filter[0], Value1[0]) ||f.Term(Filter[1], Value[1])));等待一个合适的答案!解决方法:您需要创建一个Bool Should过滤器并传递一个可动态生成的FilterContainer对象数组.我已经...

C#Mongo查询效率【代码】

我有一个FilterDefinition构建,它将根据不为空的属性查找地址.public static FilterDefinition<TU> FindPointByAddress<TU>(Address address) {var filterBuilder = Builders<TU>.Filter;var filterItems = new List<FilterDefinition<TU>>();if (!String.IsNullOrWhiteSpace(address.Street)){filterItems.Add(filterBuilder.Eq("Address.Street", address.Street));}if (!String.IsNullOrWhiteSpace(address.City)){filterItems....

c#-指定的强制转换在linq查询中无效【代码】

是否有某种方法而不是反复尝试来指定哪个字段引起问题以及什么是正确的字段类型? 我得到以下异常:Specified cast is not valid.var vacStatiscs = from x in dtGivenBal.AsEnumerable()join y in dtTakenBal.AsEnumerable()on x["emp_num"].ToString() equals y["emp_num"].ToString()into joinedfrom j in joined.DefaultIfEmpty()select new{emp_num = x.Field<int>("emp_num"),name = x.Field<string>("name"),startBal = x.F...

C#-动态Linq Multiple vs Single .where查询【代码】

为什么单个where查询给出的结果与多个where查询给出的结果不同?query.Where("666 = ID"); query.Where("ActiveFrom < @0 && ActiveTo > @1 && ValidFrom < DateTime.Now && ValidTo > DateTime.Now", toDate, fromDate);query.ToString();结果是 :SELECT *FROM [Country] AS [Extent1]WHERE 666 = [Extent1].[ID]和具有多个where调用的相同查询query = query.Where("ActiveFrom < @0", toDate); query = query.Where("ActiveTo ...

c#-在Visual Studio中以编程方式查询Git【代码】

我们刚刚从使用TFS过渡到使用Git作为我们的VCS.我们已连接到Git,可以轻松办理登机手续. 但是我们有一个Visual Studio扩展,需要为Git重写.以编程方式使用TFS非常简单,但是我无法在Git上使用任何工具. Microsoft文档错了或者我做错了.例如,要获取对Git存储库的引用,请使用TfsGitRepository,然后通过TeamFoundationGitRepositoryService获取该参考.该(据说)存在于Microsoft.TeamFoundation.Git.Server命名空间中.但是,当尝试添加引用时...

c#-进行通用MVC API查询【代码】

我正在.NET Core中构建MVC API.我有几个非常大的表(第三方系统),并且我试图允许将任何列的名称作为URL参数传递,并带有在Where子句中使用的值.这使用实体框架和.NET Core. 想法是获取与参数名称匹配的列,并在带有参数值的Where子句中使用它.我希望where查询中的lambda最终看起来像://GET: api/DWRWorkItems?Parameter=Value ... dWRWorkItem = dWRWorkItem.Where(m => m.Parameter == Value );这是我尝试的一种全新解决方案,即来自...

c#-精简程序多个查询读取速度很慢【代码】

我看到了很多有关此的问题,以及Marc Gravell关于他为什么不想继续在dapper上使用多重网格的解释. 但是我只想了解一些东西var grid = context.QueryMultiple(string.Join(" ; ", selectCommands)); return queries.Select(q => grid.Read<T>()).AsList();在这种情况下,QueryMultiple大约需要3秒钟才能执行(这几乎是SQL上的执行时间),而具有2个查询的网格读取首先需要3秒钟,然后需要9秒钟. 每行大约有5万行,只有5列,其中2列为int,2列...

c#-在HQL查询的“ where”子句中使用日期【代码】

我正在使用SQLite数据库,并且具有以下持久性类(简化):public class Project {public virtual int Id { get; set; }public virtual DateTime StartDate { get; set; } }映射到数据库中的该表:CREATE TABLE projects (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, start_date DATETIME )现在,我需要编写一个查询,该查询将选择在给定月份开始的所有项目. 在SQL中,我可以使用:SELECT id FROM projects WHERE strftime('%m', sta...

c#-将两个计数查询合并为一个布尔查询【代码】

我想不出一种将其编写为单个查询的好方法.int count1 = query1.Count(); int count2 = query2.Count();return count1 > count2;请注意,我对编写单个查询以返回布尔值并在服务器上进行一次评估的方法感兴趣. 请注意,我对使用LINQ(而不是SQL)编写此方法感兴趣.解决方法:尝试return query1.Count() > query2.Count();尝试在同一服务器调用中运行两个不相关的查询是不值得的,但是这里是:SELECT CASE WHEN (SELECT COUNT(*) FROM Produ...

c#-订购linq查询【代码】

对于我的通用网格,我目前正在执行此操作以激活排序:Elements.OrderBy(column.SortExpression).AsQueryable();其中SortExpression的类型为Func< T,object>.列是通用类Column< T>. 我在这样的控制器中设置SortExpression:new Column<OrderViewData>{Key = "ShippingDate", SortExpression = e => e.ShippingDate}‘OrderBy’导致执行我不想要的sql语句. 所以我试图用它代替它:Elements = from element in Elementsorderby column....

c#-动态LINQ查询【代码】

是否可以在运行时创建Linq查询.使用可以转换为Linq查询的xml规则.解决方法:最终,是的.但这并不简单,您需要: >学习Expression API>使用预滚动的动态LINQ库(来自示例下载) 如果要选择第一个选项,则需要创建自己的lambda.想象一下,例如,您有类似的事情(在这里制作东西…):<Filters><Add Prop="Foo">My filter value</Add> </Filters>然后,您需要执行以下操作:XElement filters = ...; // the "Filters" element IQueryable<Custome...