Tag: linq

应用基于多维数组的LINQfilter

给定entity framework查询,例如 var query = (from property in _dbContext.Properties join location in _db.Locations on property.Id equals location.PropertyId select new PropertyDetail { Url = property.Url, Type = property.Type, Title = property.Title, Continent = location.Continent, Country = location.Country, State = location.State, }); 我已应用filter,例如: if (!string.IsNullOrWhitespace(searchFilters.Type)) { query = query.Where(model => model.Type == searchFilters.Type); } if (!string.IsNullOrWhitespace(searchFilters.Title)) { […]

如何将where语句发送到在LINQ语句中动态执行的方法?

在下面的示例中, GetFilteredCustomers()工作正常,因此我可以发送我希望客户姓氏的各种字母。 但是我如何构建GetFilteredCustomersDynamic(),这将使我能够发送一个可以动态包含在LINQ语句中的完整where子句? using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace TestDynamicLinq2343 { public class Program { static void Main(string[] args) { List customers = Customer.GetCustomers(); //semi-dynamic foreach (var customer in Customer.GetFilteredCustomers(customers, “o”)) { Console.WriteLine(customer.LastName); } //fully-dyanmic (can send where clauses) foreach (var customer in Customer.GetFilteredCustomersDynamic(customers, c => c.FirstName.Contains(“a”))) { Console.WriteLine(customer.LastName); } Console.ReadLine(); } […]

EF 4.1 / Linq-to-SQL:什么是更好的:使用Equals或==?

我们正在讨论在LINQ查询中对int比较使用Equals或== 。 我们正在使用EF4.1 Code First。 什么是更好的? var query = context.Boodschappen .Where(b => b.BoodschapID == id).FirstOrDefault(); 要么: var query = context.Boodschappen .Where(b => b.BoodschapID.Equals(id)).FirstOrDefault(); 为什么 ?

ASP.NET MVC中的动态LINQ Group By Query

我想知道如何最好地解决这个问题,因为我现在对我的视图中的硬编码列非常有用 – 我想知道如何扩展它以使列成为动态的。 控制器: var dc = new DataContextDC(); return View(dc.items.Where(i=>i.IsPublic == true)); 视图: s.GroupColumn)) { %> 如上所述,目标是让用户选择哪个列替换上面的“GroupColumn”。 我想避免添加任何外部库等。 我看到使用reflection(慢,但完全动态)或者因为这是我的应用程序中的一个View,我只是为数据库中的每一列复制上面的代码,然后在其上放一个switch语句(快速,脏,但有效)

C#Count()扩展方法性能

如果在具有Count属性的IEnumerable上调用LINQ Count()扩展方法(例如List ),则Count()方法是否查找该属性并将其返回(而不是通过枚举来计算项目)他们)? 以下测试代码似乎表明它确实: using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Linq; namespace CountSpeedTest { // Output: // List – CLR : 0 ms // Enumerate – CLR : 10 ms // List – Mine: 12 ms // Enumerate – Mine: 12 ms class Program { private const int Runs = 10; private […]

Linq明显无法正常工作

我遇到了一个linq查询的奇怪问题。 我正在使用LINQPad 4进行一些使用LinqToSQL作为LinqPad驱动程序的正则表达式的查询。 这是我正在尝试的查询: (from match in from s in SystemErrors select Regex.Match(s.Description, “…”) select new { FamilyCode = match.Groups[“FamilyCode”].Value, ProductPrefix = match.Groups[“ProductPrefix”].Value, BillingGroup = match.Groups[“BillingGroup”].Value, Debtor = match.Groups[“Debtor”].Value }).Distinct() 正如您所看到的,我正在尝试使用组从日志表中的文本描述中提取数据。 查询有效,但Distinct不想工作,它返回所有Match的一行。 我已经读过,distinct应该使用匿名类型,匹配每个属性。 更奇怪的是,distinct确实做了一些事情,它通过FamilyCode(然后是ProductPrefix等)按字母顺序排序值。 有人知道为什么这不起作用? 谢谢 以下是LinqPad的SQL选项卡中显示的内容: DECLARE @p0 NVarChar(1000) = ‘Big Regexp’ DECLARE @p1 NVarChar(1000) = ‘FamilyCode’ DECLARE @p2 NVarChar(1000) = ‘ProductPrefix’ DECLARE @p3 […]

LINQ to SQL选择多列不同并返回整个实体

我正在使用第三方数据库,需要为我正在研究的特定市场选择一组不同的数据。 每个市场的数据都是相同的,因此将其全部用完是多余的,我不想硬编码任何逻辑,因为我们正在与供应商合作解决问题,但我们需要一个修复与供应商一起修复以及数据库当前的方式,因为它可能需要一段时间才能进行修复。 我不希望按任何方式进行分组,因为我想在最低级别获取数据,但我不想要任何冗余数据。 我当前的查询看起来与此类似…… determinantData = (from x in dbContext.Datas where x.Bar.Name.Equals(barName) && x.Something.Name.Equals(someName) && FooIds.Contains(x.Foo.Id) && x.Date >= startDate && x.Date <= endDate select x).Distinct(); 这不符合我的预期。 我想通过三个属性选择不同的记录,比如Foo , Bar和Something但返回整个对象。 我怎么能用LINQ做到这一点?

转义转义字符不起作用 – SQL LIKE运算符

我使用\作为LIKE运算符的escape character 。 我正在逃避四个角色 1 % 2 [ 3 ] 4 _ 当我将转义字符作为输入传递时,查询不返回值。 我怎样才能使它工作? 数据插入 DECLARE @Text VARCHAR(MAX) SET @Text = ‘Error \\\ \\ C:\toolbox\line 180’ INSERT INTO Account (AccountNumber,AccountType,Duration,ModifiedTime) VALUES (198,@Text,1,GETDATE()) 码 static void Main(string[] args) { string searchValue1 = @”Error \\\ \\ C:\toolbox\line 180″; string searchValue2 = @”55555″; string result1 = DisplayTest(searchValue1); string […]

IEnumerable.Select with index

我有以下代码: var accidents = text.Skip(NumberOfAccidentsLine + 1).Take(numberOfAccidentsInFile).ToArray(); 事故是一系列的字符串。 我想从字符串数组到Accident对象数组进行Linq转换,如下所示: return accidents.Select(t => new Accident() {Id = i, Name = t.Replace(“\””, string.Empty)}).ToArray(); 如何使用Linq从事故arrays中检索索引i还是我必须上学?

为什么我不能在for循环中更改linq IEnumerable中的元素?

昨天我写了下面的c#代码(为了易读性而缩短了一点): var timeObjects = ( from obj in someList where ( obj.StartTime != null ) select new MyObject() { StartTime= obj.StartTime.Value, EndTime = obj.EndTime } ) 因此每个项目都有一个startTime,而另一些项目有一个EndTime(其他项目的尾数为null)。 如果已知start和endtime,我想计算经过的时间: foreach ( var item in timeObjects) { if ( item.EndTime == null ) { item.elapsed = 0; } else { item.elapsed = ( item.EndTime.Value – item.StartTime).Minutes; } […]