Tag: linq

entity framework+ DayOfWeek

使用System.Linq.Dynamic (在这里管理https://github.com/kahanu/System.Linq.Dynamic ),我试图捕获在DateTime上找到的DayOfWeek字段,以便使用Entity Framework 6(或更高版本)进行聚合。 以前要求类似的东西,这有很大帮助, 动态Linq +entity framework:动态选择的日期时间修改 entity framework支持使用the获取DayOfWeek SqlFunctions.DatePart(“dw”, datetime?) 或者我们可以用类似的东西做一些更需要的东西 DbFunctions.DiffDays(date?, date?). 理念: 让Linq的DayOfWeek成为实体 我发现这非常有趣,我喜欢它,因为它不使用可能让我局限于SQL Server的SqlFunctions 。 此外,开发人员可以控制一周的第一天,而无需查询SQL Server属性以查找其配置方式(第一天)。 出于实验目的,我一直在尝试在VisitMember()覆盖中实现它: protected override Expression VisitMember(MemberExpression node) { if (node.Type == typeof(System.DayOfWeek)) { var firstSunday = new DateTime(1753, 1, 7); var firstSundayExpression = Expression.Constant(firstSunday, typeof(DateTime?)); var timeValue = node.Expression; if (timeValue.Type != typeof(DateTime?)) […]

简单示例子查询Linq

T-SQL查询 Select * from dbo.User_Users Where UserID IN (Select UserID from Course_Enrollments) LINQ to Entities替代Above Query var innerquery = from en in Course_Enrollments select en.UserID; var query = from u in User_Users where innerquery.Contains(u.UserID) select u; stackoverflow上有很多复杂的子查询,我只是想看一个简单的子查询如何通过linq完成的例子。这就是我如何做到的,但它不好,因为它向数据库发送了2个查询。

使用无效键值访问JArray值:“fields”。 预期数组位置索引

我正在使用监护人API来尝试和检索故事但仍然收到exception。 json的字符串包含下面的json,但是我无法使用LINQ访问正文。 这里是: { “response”:{ “status”:”ok”, “userTier”:”approved”, “total”:1, “startIndex”:1, “pageSize”:10, “currentPage”:1, “pages”:1, “orderBy”:”newest”, “results”:[{ “id”:”sustainable-business/sustainable-finance-where-next-open-thread”, “sectionId”:”sustainable-business”, “sectionName”:”Guardian Sustainable Business”, “webPublicationDate”:”2014-02-13T13:27:00Z”, “webTitle”:”Where next for sustainable finance? – open thread”, “webUrl”:”http://www.theguardian.com/sustainable-business/sustainable-finance-where-next-open-thread”, “apiUrl”:”http://content.guardianapis.com/sustainable-business/sustainable-finance-where-next-open-thread”, “fields”:{ “body”:”…” } }] } } 我尝试过包括这个在内的所有事情: string story = (string)ja[“response”][“results”][“fields”][“body”]; 更新: public partial class Story : PhoneApplicationPage { string url; string jsonData; // Http […]

以编程方式构建LINQ查询而没有局部变量欺骗我

假设我的对象处于完美的工作状态(即TDD让我觉得它们有效)。 我有一个我这样创建的列表(正确缩进除外): var result = from v in vendors from p in v.Products orderby p.Name select p; 这有效 – 我从所有供应商处获得所有产品。 现在我有一个条件列表,由用户在运行时构建。 让我们应用它们: foreach (Attribute a in requiredAttributes) { result = result.Where(p => p.Attributes.Contains(a)); } 这可能是原始的,但我认为它有用。 但是,在完成此foreach循环后,当您枚举“result”时,它将包含其Attributes属性(也是集合)中具有requiredAttributes集合的LAST属性的所有产品。 对我来说,这种气味就像“a”被覆盖在某处,每次旅行通过循环,只有最后一个适用。 如果没有以某种方式将扩展方法写入IEnumerable,称为ContainsAll(IEnumerable)或类似的东西,我怎么能实现我想要的,这基本上是一个逻辑AND,只给我那些具有所有必需属性的产品?

C#Null与LINQ合并

我有2个类,看起来像这样: class Widget { string Selected { get; set; } List Options { get; set; } } class Option { string InternalCode { get; set; } string ExternalCode { get; set; } } 使用每个客户端的不同数据动态填充Options ,以显示ExternalCode作为选项 Selected使用ExternalCode填充。 然后我需要访问匹配的InternalCode 。 目前我这样做: var option = widget.Options.SingleOrDefault(o => o.ExternalCode == widget.Selected); var internalCode = option == null ? string.Empty […]

EntityFunctions.TruncateTime和DbFunctions.TruncateTime方法有什么区别?

有什么区别: EntityFunctions.TruncateTime 和 DbFunctions.TruncateTime methods?

我如何组织一个可枚举的?

我需要一个优雅的方法,它接受一个可枚举的,并获得可枚举的枚举,每个元素中包含相同数量的元素,但最后一个: public static IEnumerable<IEnumerable> Chunk(this IEnumerable values, Int32 chunkSize) { // TODO: code that chunks } 这是我尝试过的: public static IEnumerable<IEnumerable> Chunk(this IEnumerable values, Int32 chunkSize) { var count = values.Count(); var numberOfFullChunks = count / chunkSize; var lastChunkSize = count % chunkSize; for (var chunkIndex = 0; chunkSize 0) { yield return values.Skip(chunkSize * count).Take(lastChunkSize); […]

使用Distinct与自定义对象列表

如何使Distinct()方法使用自定义对象列表(在本例中为Href ),这是当前对象的样子: public class Href : IComparable, IComparer { public Uri URL { get; set; } public UrlType URLType { get; set; } public Href(Uri url, UrlType urltype) { URL = url; URLType = urltype; } #region IComparable Members public int CompareTo(object obj) { if (obj is Href) { return URL.ToString().CompareTo((obj as Href).URL.ToString()); } else […]

从linq查询中填充数据表

我使用以下代码 IEnumerable query = from c in at.appointmentcalendars.AsEnumerable() select c; DataTable dt = query.CopyToDataTable(); 但我得到以下错误 无法将类型’System.Collections.Generic.IEnumerable’隐式转换为’System.Collections.Generic.IEnumerable’ 。 存在显式转换(您是否错过了演员?)

LinQ WHERE string.Contains还是string.IndexOf?

我需要写一些可以得到相同结果的东西: var result = collection.Where( o => o.Name.IndexOf( “some_string2” ) != -1 || o.Name.IndexOf( “some_string_2” ) != -1 || o.Name.IndexOf( “some_string3” ) != -1 ) 要检查的字符串的数量和值(some_string_1,2和3)是未知的(来自DB),所以更通用的… 我尝试了以下,但失败了…… var stringsToCheck = someCommaSeparatedStrings.ToLower().Split( ‘,’ ).ToList(); var result = collection.Where( o => stringsToCheck.Contains( o.ToLower() ) ); 换句话说,我需要从集合中检索所有包含某些特定字符串的对象。