Tag: linq

Linq查询JObject

我正在使用Json.net进行序列化,然后创建一个如下所示的JObject: “RegistrationList”: [ { “CaseNumber”: “120654-1330”, “Priority”: 5, “PersonId”: 7, “Person”: { “FirstName”: “”, “LastName”: “”, }, “UserId”: 7, “User”: { “Id”: 7, “CreatedTime”: “2013-07-05T13:09:57.87”, “Comment”: “”, }, 我如何查询到一个新的对象或列表,这很容易放入一些html表/视图。 我只想显示CaseNumber,FirstName和Comment。

如何使用Entity Framework包含已排序的导航属性

我有一个实体A ,里面有一个B的集合。 我用_entity.A.Include(a => aB)加载它们 现在我想让B进入A按自定义OrderBy排序。 我试过_entity.A.Include(a => aBOrderBy(o => o.Version)但我得到了: Include路径表达式必须引用在类型上定义的导航属性。 使用虚线路径作为参考导航属性,使用Select运算符作为集合导航属性。 有关如何实现这一目标的任何想法? 谢谢。 版本是整数。

LINQ表达式中的聚合函数抛出错误。 (不能翻译成商店表达。)

错误:LINQ to Entities无法识别方法’System.String Aggregate [String,String](System.Collections.Generic.IEnumerable 1[System.String], System.String, System.Func 3 [System.String,System。 String,System.String])’方法,此方法无法转换为商店表达式。 Linq表达: Items = context.TESTANSWER.Where(x => x.ID == 6729223232) .Join(context.QUESTIONREPOs, x => x.QUESTIONID, y => y.ID, (x, y) => new { x = x, y = y }) .Join(context.OPTIONREPOs, p => pxQUESTIONID, q => q.QUESTIONID, (p, q) => new { p = p, q = […]

使用LINQ获取每第n行

我们在SQL数据库中有一个表,其中包含我需要创建图表的历史原始数据。 我们通过Entity Framework和LINQ访问数据库。 对于较小的日期时间间隔,我可以简单地读取数据并生成图表: var mydata = entity.DataLogSet.Where(dt => dt.DateTime > dateLimit); 但我们想要实现一个function,您可以从图表中快速“缩小”以包括更大的日期间隔(过去5天,上个月,过去6个月,过去10年等等)。 我们不希望为此绘制每个数据点的图表。 我们想要使用数据样本,我的意思是这样的 – 最近5天 :绘制表格中的每个数据点 上个月 :绘制表格中每10个数据点的图表 过去6个月 :绘制每100个数据点的图表 数据点和图表名称的数量仅是示例。 我需要的是一种从数据库中只选择“第n”行的方法。

Linq Where Contains …保持默认顺序

我有一个ID号的集合,我希望返回一些对象,我是通过使用linq语句来实现的,其中where使用了contains语句: var recentCats = (from i in EntityCache.Default.GetAll() where WebProfile.Current.RecentlyCreatedCategories.Contains(i.Id) && BoundCategory.ParentItemClass.Id.Equals(i.ParentItemClass.Id) select new CategoryInfo() { Category = i, ClassId = i.ParentItemClass.Id, ClassImage = NamedResourceManager.GetResourceBinary(i.ParentItemClass.NameResourceId) }); 这完全正常,除了我想保持返回集合中的项目顺序与进入列表中的项目顺序相同。例如,如果我有一个ID列表:14,603,388,我想要返回的对象的顺序不同,而不是缓存返回的顺序。 在entity framework中是否有任何方法可以执行此操作,或以任何方式执行此操作而不涉及我编写foreach循环? 谢谢

Expression.Call – 调用linq扩展名:FirstOrDefault,Where

我试图动态创建以下,但我在调用扩展方法FirstOrDefault时遇到问题: using(var context = new Entities()) { var list = context.Engines.Include(“Cars”).Select(e => e.Cars.FirstOrDefault()).ToList(); } 我有以下内容 Expression parameter = Expression.Parameter(typeof(Engine), “e”); Expression property = Expression.Property(parameter, “Cars”); 参数= {e} property = {e.Cars} 这些都很好,但是当我尝试调用FirstOrDefault方法时遇到问题: var result = Expression.Call(typeof(Queryable), “FirstOrDefault”, new type[] { typeof(Car)}, property); 我想得到 result = {e.Cars.FirstOrDefault()} 但我得到一个InvalidOperationException 类型’System.Linq.Queryable’上没有通用方法’FirstOrDefault’与提供的类型参数和参数兼容。 如果方法是非generics的,则不应提供类型参数。 任何帮助将非常感激。

动态LINQ查询从数据库获取Field值

可能吗? Public String Get_Filed_By_Id(string table_Name,String Field_Name,string PK_val) { string strRes=””; using(mydbcontext db=new mydbcontext()) { var x=db.table_Name.Where(p=>p.Id=PK_val).FirstOrDefault().Field_Name; strRes=Convert.Tostring(x); } return strRes; } 要么 var x=(from o in db.table_Name where o.Id=PK_val select o.Field_Name).FirstOrDefault(); 在这里,我传递Table_Name , Column_Name和Condition值( PK_val )以在特定条件( Id=Pk_val )内从Table_Name获取Column_Name 。 可能吗??

当对象为null VS Linq to SQL时,Linq to对象

我有这个Linq来对象查询: var result = Users.Where(u => u.Address.Country.Code == 12) 如果Address或Country为null,我会收到exception。 为什么这个查询不检查地址是否为空并且只是在那之后? 这样我就不需要写这个可怕的查询了: var result = Users.Where(u => u.Address != null && u.Address.Country != null && u.Address.Country.Code == 12) 在Linq to SQL中,第一个查询将完成工作(当然是出于其他原因)。 是一种避免linq中的“空检查”对象的方法吗?

如何确定对象的类型是否实现IEnumerable ,其中X使用Reflection从Base派生

给一个基类Base ,我想编写一个方法Test,如下所示: private static bool Test(IEnumerable enumerable) { … } 如果o的类型实现IEnumerable任何接口,其中X派生自Base ,那么Test返回true,所以如果我这样做: public static IEnumerable Convert(IEnumerable enumerable) { if (Test(enumerable)) { return enumerable.Cast().Select(b => b.SomePropertyThatIsString); } return enumerable.Cast().Select(o => o.ToString()); } ……使用Reflection可以做正确的事情。 我确定这是跨越所有类型接口的问题,找到符合要求的第一个,但我很难找到其中的通用IEnumerable 。 当然,我可以考虑这个: public static IEnumerable Convert(IEnumerable enumerable) { return enumerable.Cast().Select(o => o is Base ? ((Base)o).SomePropertyThatIsString : o.ToString()); } ……但是把它想象成一个思想实验。

LINQ:按最常见值排序

我正在尝试在c#中创建一个“有序”对象列表,其中列表将按ImdbId属性中最常见的值排序。 我没有使用数据库我从列表中获取远程api的结果,我只需要以优雅的方式对列表进行排序。 class Movie { String ImdbId {get; set; } String Name {get;set;} … more properties } 未排序列表的示例: imdbId | Name 698649 | “Sex and the City” Models and Mortals 698669 | “Sex and the City” The Awful Truth 698649 | “Sex and the City” Models and Mortals 698649 | “Sex and the City” Models […]