Tag: linq

如何提取XML文件中每个标记的出现

我有以下XML文件: … THIS IS A TEST NARRATIVE … THIS IS A TEST STATEMENT … … THIS IS A TEST NARRATIVE2 … THIS IS A TEST STATEMENT2 … … THIS IS A TEST NARRATIVE3 … THIS IS A TEST STATEMENT3 … … 我在看LINQ to XML,但我不确定如何实现它。 我想保存叙述,并为每个叙述,将语句保存到一个数组中以供以后使用。 例: THIS IS A TEST NARRATIVE THIS IS A TEST […]

LINQ to Entities无法识别方法’System.TimeSpan Subtract(System.DateTime)

以下引发错误: public FieldViewer GetFieldViewByFieldIDIPAndUserByDate( int fieldID, string ip, string userID, DateTime date ) { return this.context.FieldViewers.Where( x => x.Field.FieldID == fieldID && x.Viewer.IPAddress == ip && x.Viewer.User.Id == userID && date.Subtract( x.Viewer.CreatedAt ).TotalMinutes >= 10 ).FirstOrDefault(); } LINQ to Entities无法识别方法’System.TimeSpan Subtract(System.DateTime)’方法,并且此方法无法转换为商店表达式。 我如何解决这个问题,因为我需要减去每个查询。

动态创建lambdas表达式+ linq + OrderByDescending

如何创建一个动态lambda表达式来传递给我在linq里面的orderby函数中使用? 我基本上想要转换queryResults.OrderByDescending(); 在queryResults.OrderByDescending(myCustomGeneratedLambdaExp); 其中myCustomGeneratedLambdaExp应为包含x => x.name的字符串。 谢谢

使Linq对象变得“脏”的最简洁方法是什么?

我有一个MyClass类型的Linq-To-SQL对象obj ,我已经通过我的数据上下文加载了它。 现在我想强制该对象保存,即使没有实际更改的字段,以便保存操作可以在幕后设置一些触发器。 使我的数据上下文认为obj是脏的最简单方法是什么,因此调用SubmitChanges()会导致obj被保存?

如何访问动态列表中的项目?

我试图弄清楚如何枚举.NET 4.5中动态LINQ .Select(string selectors)的结果。 动态linq来自System.Linq.Dynamic命名空间。 编辑:我也包括System.Linq 。 我有一个看起来像这样的方法: public void SetAaData(List data, List fields) { if (data == null || data.Count == 0) { return; } var dynamicObject = data.AsQueryable().Select(“new (” + string.Join(“, “, fields) + “)”); _aaData = dynamicObject; } 如果我单步执行代码,我可以检查dynamicObject并枚举它以查看结果(这是正确的)。 问题是我现在正试图让我的unit testing通过这个,并且我无法访问dynamicObject中的任何内容。 _aaData字段定义为dynamic类型。 在我的测试方法中,我试过这个: var hasDynamicProperties = new MyClass(); dgr.SetAaData(data, fields); // data […]

在Linq分组(在多个领域)

我使用linq对一些数据进行分组如下: var groupedData = from row in salesTable.AsEnumerable() group row by row.Field(“InvoiceNum”) into grp select grp; 我想使用row.Field(“InvoiceNum”),row.Field(“InvoiceLineNum”)等一些字段重新组合groupsData ,我不知道linq分组如何与多个字段一起工作?

将数据表转换为自定义XML的替代方法

有没有办法我可以在不使用数据表的情况下创建XML 一个StringWriter : System.IO.StringWriter writer = new System.IO.StringWriter(); yourDataTable.WriteXml(writer, XmlWriteMode.WriteSchema, true); 对我来说效果不好,因为它将后代作为列标题。 我想要第一行作为后代。 迭代DataColumns和DataRows。 我正在阅读LINQ-to-DataTable和LINQ-to-XML。 LINQ查询可以帮助我吗?

将foreach转换为Linq

现行代码: 对于MapEntryTable中的每个元素,检查属性IsDisplayedColumn和IsReturnColumn ,如果它们为true,则将该元素添加到另一组列表中,其运行时间为O(n) ,将有许多元素都具有false属性,因此不会被添加到循环中的任何列表中。 foreach (var mapEntry in MapEntryTable) { if (mapEntry.IsDisplayedColumn) Type1.DisplayColumnId.Add(mapEntry.OutputColumnId); if (mapEntry.IsReturnColumn) Type1.ReturnColumnId.Add(mapEntry.OutputColumnId); } 以下是Linq版本的相同: MapEntryTable.Where(x => x.IsDisplayedColumn == true).ToList().ForEach(mapEntry => Type1.DisplayColumnId.Add(mapEntry.OutputColumnId)); MapEntryTable.Where(x => x.IsReturnColumn == true).ToList().ForEach(mapEntry => Type1.ReturnColumnId.Add(mapEntry.OutputColumnId)); 我正在将所有这些foreach代码转换为linq,因为我正在学习它,但我的问题是: 在这种情况下,我是否可以获得Linq转换的任何优势,还是不利? 有没有更好的方法来使用Linq做同样的事情 更新: 考虑这样的情况:列表中的1000个元素中的80个元素都具有false属性,那么在哪里为我提供了快速查找具有给定条件的元素的好处。 Type1是一个自定义类型,包含List结构, DisplayColumnId和ReturnColumnId

LINQ – 嵌套查询

我有一个SQL语句,我试图转换为LINQ查询。 我需要这样做,因为我无法编辑我的数据库:(。无论如何,我有一个如下所示的SQL语句: SELECT CustomerID, FirstName, LastName, Gender, BirthMonth, (SELECT COUNT(ID) FROM PurchaseOrder WHERE [CustomerID]=CustomerID) as TotalPurchases FROM MyEntities 我知道如何在LINQ中执行除嵌套查询部分之外的所有操作。 目前,我有以下内容: var results = from x in context.MyEntities select new Customer() { CustomerID = x.CustomerID, FirstName = x.FirstName, LastName = x.LastName, Gender = x.Gender, BirthMonth = x.BirthMonth, TotalPurchases = ? }; 如何在LINQ中执行嵌套查询以获取TotalPurchases的值? 非常感谢!

Nhibernate / Linq:NHibernate.QueryException:无法解析属性:Profile.class:MyNamespace.MyObject

我的linq查询有问题。 我试图根据选定的值过滤对象。 我们使用一个查询模型,它返回一个System.Linq.Expressions.Expression并使用它来创建一个nhibernate查询。 这是我的linq表达。 x =>(request.InitialLoad || (!request.InitialLoad && (Enum.GetValues(typeof(MyType)).Length == request.MyTypes.Length || (Enum.GetValues(typeof(MyType)).Length != request.MyTypes.Length && ((request.MyTypes.Contains((int)MyType.Referrals) && x.Post.PostType == StatusPostType.Referral) || (request.MyTypes.Contains((int)MyType.Businesses) && x.Post.Profile is BusinessProfile) || (request.MyTypes.Contains((int)MyType.Members) && x.Post.Profile is UserProfile) ) ) ) ) ) && x.Profile.Equals(request.Profile); 映射(我们使用流利)看起来像这样: MyObject(Post属性): References(x => x.Post, “PostId”); MyObject.Post(Profile属性): References(x => x.Profile, “ProfileId”); 当我将x.Post.Profile is SomeType更改x.Post.Profile […]