Tag: linq

不支持Linq-to-EF DateTime.ToLocalTime

Linq到EF不支持DateTime.ToLocalTime 。 有什么选择? 我的想法已经不合时宜了。

传入的请求包含太多参数。 服务器最多支持2100个参数

我有这个看似简单的linq-to-sql查询,可以搜索多个列中的一些数据; 像这样的东西: List TheTableIDs = list of IDs (sometimes more than 2100) var QueryOutput = (from x in TheDataContext.SomeTable where TheTableIDs.Contains(x.ID) && x.Col1.Contains(SomeString) || x.Col2.Contains(SomeString)) select x.ID).ToList(); 我得到的错误是这样的: 附加信息:传入请求的参数太多。 服务器最多支持2100个参数。 减少参数数量并重新发送请求。 解决这个问题的最佳方法是什么? 我环顾四周,找到的解决方案看起来像这样: var QueryOutput = TheDataContext.SomeTable.AsEnumerable() .Join(TheTableIDs, x => x.LeadID, ci => ci, (x, ci) => x) .Where(x => SomeString.Contains(x.Col1) == true || SomeString.Contains(x.Col2) […]

如何在linq中处理空值?

recordsList.ListOfRecords = new StudentRecordsBAL() .GetStudentsList() .Select(q => new StudentRecords() { _RollNumber = q._RollNumber, _Class = q._Class, _Name = q._Name, _Address = q._Address, _City = q._City, _State = q._State, _Subjects = q._Subject, _AttendedDays = new AttendanceBAL() .GetAttendanceListOf(q._RollNumber) .Where(date => date != null) .Select(date => new DateTime(date._Date.Year, date._Date.Month, date._Date.Day)) .Distinct() .ToList(), _AttendedSubjects = GetAttendedSubjects(q._RollNumber) }).ToList(); 上述代码中的方法GetAttendanceListOf(q._RollNumber)将返回数据库中的记录列表,如果传递的“roll-no”没有记录,则返回“null”。 linq查询将终止生成错误 […]

如何在XDocument元素的名称中使用’:’字符?

我正在使用XDocument在代码下面创建一个RSS: var document = new XDocument( new XDeclaration(“1.0”, “utf-8”, null), new XElement(“rss”, new XElement(“channel”, new XElement(“title”, “test”), new XElement(“dc:creator”, “test”), 执行此代码期间发生的exception。 ‘:’字符,hex值0x3A,不能包含在名称中。 我如何使用:元素名称中的字符?

IEnumerable.Cast()vs IEnumerable.Select()中的强制转换

假设我有一个IEnumerable ,我希望将它们转换为与ASCII等效的字符。 对于一个整数,它只是(char)i ,所以总是有collection.Select(i => (char)i) ,但我认为使用collection.Cast()会有点干净。 当我使用collection.Cast()而不是collection.Select(i => (char)i)时,有人可以解释为什么我得到InvalidCastException吗? 编辑:有趣的是,当我调用collection.OfType()我得到一个空集。

只使用扩展方法在Linq中很好,干净的交叉连接

可能重复: 用扩展方法表示的嵌套“来自”LINQ查询 我确定以前曾经问过,但我老实说找不到任何东西。 我很好奇下面仅使用内置Linq扩展方法的等效语法: var z1 = from x in xs from y in ys select new { x, y }; 我可以得到相同的结果: var z2 = xs.SelectMany(x => ys.Select(y => new { x, y })); 但它产生不同的IL代码,代码有点复杂且难以理解。 使用扩展方法有更简洁的方法吗? 这是我写的整个测试方法: private void Test() { var xs = new[] { 1D, 2D, 3D }; var ys = new[] { […]

为什么lambda中的这个短路不工作?

为什么linq试图检查第二个表达式呢? .Where(t => String.IsNullOrEmpty(someNullString) || t.SomeProperty >= Convert.ToDecimal(someNullstring)) 通常的解决方法是什么? 更新: 当然,它是关于LINQ to SQL的。 它无法转换为SQL。

无法更新EntitySet的’ItemRankList’,因为它具有DefiningQuery并且不存在元素

任何想法为什么LINQ中的entity framework给出以下奇怪的错误: 无法更新EntitySet的“ItemRankList”,因为它具有DefiningQuery,并且元素中不存在支持当前操作的元素。

如何将ListItemCollection(dropdownlist.items)转换为字典?

如何将ListItemCollection ( DropDownList.items )转换为Dictionary (我知道它可以通过每个循环完成)是否还有其他方式linq?

IEnumerable重复function

我遇到了一个奇怪的问题。 我在这里重现了这个问题。 Random r = new Random(); List x = new List {1, 2, 3, 4, 5, 6}; var e = x.OrderBy(i => r.Next()); var list1 = e.ToList(); var list2 = e.ToList(); bool b = list1.SequenceEqual(list2); Console.WriteLine(b); // prints false 到目前为止,我认为Linq函数在被调用时会被执行。 但是,在这个方法中,似乎在我调用ToList ,Linq函数再次执行OrderBy 。 为什么会这样?