Tag: linq

列表基于另一个列表排序

我有两个通用列表对象,其中一个包含id和排序,另一个是一堆id,第二个列表中的每个id都有一个id引用到第一个列表,例如; public class OptionType { public int ID { get; set; } public int Ordering { get; set; } } public class Option { public int ID { get; set; } public int Type_ID { get; set; } } 显然,我可以通过这样做对OptionTypes列表进行简单的排序 types_list.OrderBy(x => x.Ordering); 问题是,我怎么能通过利用对象上的’Type_ID’来排序’options_list’,这与types_list的排序有关。 就像在类似的东西(显然这是无效的 – 但希望你会得到这个想法!) options_list.OrderBy(x => x.Type_ID == types_list.OrderBy(e => e.Ordering));

NHibernate如何查询IList 属性?

我试图使用NHibernate查询我的一个域类上的IList 属性。 这是一个简单的例子来演示: public class Demo { public Demo() { this.Tags = new List(); } public virtual int Id { get; set; } public virtual string Name { get; set; } public virtual IList Tags { get; set; } } 映射如下: 我能够保存和检索就好了。 现在查询我的域类的实例,其中Tags属性包含指定的值: var demos = this.session.CreateCriteria() .CreateAlias(“Tags”, “t”) .Add(Restrictions.Eq(“t”, “a”)) .List(); 导致错误:集合不是关联:Demo.Tags var demos […]

entity framework订购包括

我想尝试以下类似工作: _dbmsParentSections = FactoryTools.Factory.PdfSections .Include(x => x.Children.OrderBy(y => y.Order).ToList()) .Include(x => x.Hint).Include(x => x.Fields) .Where(x => x.FormId == FormId && x.Parent == null) .OrderBy(o => o.Order) .ToList(); 导致exception的部分是: .Include(x => x.Children.OrderBy(y => y.Order).ToList()) 编辑: 经过进一步观察, _dbmsParentSections.ForEach(x => x.Children = x.Children.OrderBy(y => y.Order).ToList()); 为我完成了这项工作(在最初的Factory调用之后,没有Children.OrderBy )。

在List 中查找最常出现的数字

使用linq有快速而好的方式吗?

LINQ to Entities无法识别方法’Int32 Int32(System.String)’方法,并且此方法无法转换为存储表达式

我正在尝试使用Linq to Entities查询数据库上下文,我收到此错误: INQ to Entities无法识别方法’Int32 Int32(System.String)’方法,并且此方法无法转换为商店表达式。 码: public IEnumerable GetCourseName() { var course = from o in entities.UniversityCourses select new CourseNames { CourseID = Convert.ToInt32(o.CourseID), CourseName = o.CourseName, }; return course.ToList(); } 看到这个之后我就这样试过了 public IEnumerable GetCourseName() { var temp = Convert.ToInt32(o.CourseID); var course = from o in entities.UniversityCourses select new CourseNames { CourseID = […]

比较2个对象并检索具有不同值的字段列表

给定一个具有35个字段的类和2个具有一定数量的不同字段值的对象。 是否有一种聪明的方法来获取列表以及对象如下所示的字段名称? 例如 obj1.Name = “aaa”; obj1.LastName = “bbb”; obj1.Address = “xcs”; obj2.Name = “aaa”; obj2.LastName = “ccc”; obj2.Address = “jk”; 目的: list<String> containing 2 Strings LastName and Address 我认为reflection是要走的路,但是35场,恐怕太重了。 还有其他想法,比如linq?

Linq to Objects – 从数字列表中返回数字对

var nums = new[]{ 1, 2, 3, 4, 5, 6, 7}; var pairs = /* some linq magic here*/ ; =>对= {{1,2},{3,4},{5,6},{7,0}} 对的元素应该是两元素列表,或者是一些具有两个字段的匿名类的实例,例如new {First = 1, Second = 2} 。

LINQ加入2列表

前言:我不明白这是做什么的: o => o.ID, i => i.ID, (o, id) => o 所以对我很轻松。 🙂 我有2个列表需要连接在一起: // list1 contains ALL contacts for a customer. // Each item has a unique ID. // There are no duplicates. ContactCollection list1 = myCustomer.GetContacts(); // list2 contains the customer contacts (in list1) relevant to a REPORT // the items in this […]

String.Equals()无法正常工作

我正在使用LINQ搜索我的一个Entity Framework表,并根据名称找到一个“组”。 名称是一个字符串,看起来是Unicode(说它在edmx中)。 我有一个方法GetGroup() ,我传入一个名称来搜索。 通过代码调试,我已经在我的数据库中有一个名为“Test”的组。 一旦我传入一个名为“TEST”的组,我希望它返回已经在数据库中的“Test”。 它出于某种原因,没有找到“测试”并认为“测试”不存在。 这是我的查询,我不明白为什么它不起作用。 请帮忙。 “name”是组名中传递的。 我的.Equals似乎只有在gr.Name和name完全相同时才有效。 如果一个字符在两个字符串之一中是大写字母,则.Equals不起作用。 我曾尝试使用InvariantCultureIgnoreCase ,这似乎没有帮助。 如果有人问, MyLeagueId和LeagueId将始终匹配,则设置数据库,以便可以有一个不同联盟ID的组。 我不认为这是问题所在。 Group g = (from gr in this.DatabaseConnection.Groups where gr.Name.Equals(name, StringComparison.OrdinalIgnoreCase) && gr.LeagueId == this.MyLeagueId select gr).FirstOrDefault();

entity framework6代码优先自定义函数

我正在尝试类似的东西: 如何使用带有linq的标量值函数实体? 但是我没有使用EDMX,而是先使用DbContext和代码。 我遇到过这个: https://codefirstfunctions.codeplex.com/ 但用法并不合适。 我想要实现的是能够做到这一点: var locations = context.Locations.Where(e => Functions.LatLongDistanceCalc(e.Lat, e.Long, lat, long) >= 10) 它将在SQL Server上调用标量函数(LatLongDistanceCalc)。 没有使用EDMX有没有办法做到这一点? 我知道你可以构建一个手动查询,但这不会是优先的,因为我想带回具有延迟加载代理等的实体以及构建更复杂的查询。