Tag: linq to entities

linq to entities vs linq to objects – 它们是一样的吗?

我通常使用术语entity来表示业务数据对象,在我看来, linq to entities linq to objects是相同的。 这不正确吗?

LINQ to Entities group-by failure使用.date

我想在日期时间字段的日期部分做一个Linq组。 这个linq语句有效但按日期和时间分组。 var myQuery = from p in dbContext.Trends group p by p.UpdateDateTime into g select new { k = g.Key, ud = g.Max(p => p.Amount) }; 当我运行此语句仅按日期分组时,我得到以下错误 var myQuery = from p in dbContext.Trends group p by p.UpdateDateTime.Date into g //Added .Date on this line select new { k = g.Key, ud = g.Max(p […]

Linq-to-Entities查询中的格式化日期会导致exception

我有提交日期时间的Entity类,我想选择不同的’mon-yyyy’格式的datetime字段值并填充下拉列表。 以下代码给出了错误: var env = db.Envelopes.Select(d => new { d.ReportDate.Year, d.ReportDate.Month, FormattedDate = d.ReportDate.ToString(“yyyy-MMM”) }).Select(d => d.FormattedDate) List _months = new List(); foreach (var mname in env) { _months.Add(new SelectListItem() { Text = mname, Value = mname }); } 错误信息: LINQ to Entities无法识别方法’System.String ToString(System.String)’方法,并且此方法无法转换为商店表达式。 如何更正此错误消息? 谢谢SR

在LINQ to Entities中使用DateTime

我有一个PostgreSQL数据库,通过Entity Framework Code First与程序交互。 数据库包含一个表“users”,其中包含“访问”类型的DateTime。 该应用程序被描述为; public class Users { … [Required] [Column(“visit”)] public DateTime VisitDate … } 我试图运行此查询; var rslt = context.Visitors.Where(v => v.VisitDate.Date == DateTime.Now.Date).ToList() 但是获得exception: NotSupportedException 怎么了?

Linq to Entities:在NText字段上使用ToLower()

我正在使用SQL Server 2005,带有区分大小写的数据库。 在搜索function中,我需要使用“where”子句创建Linq To Entities(L2E)查询,该子句使用以下规则将多个字符串与数据库中的数据进行比较: 比较是一个“包含”模式,而不是严格的比较:因为L2E中允许字符串的Contains()方法很容易 比较必须不区分大小写:我在两个元素上使用ToLower()来执行不敏感的比较。 所有这些都表现得非常好,但我遇到了以下exception:“我的一个字段上的参数数据类型ntext对于较低函数的参数1无效”。 看起来该字段是一个NText字段,我无法对其执行ToLower()。 我能做些什么才能在NText字段上执行不区分大小写的Contains()?

LINQ to Entities消息中仅支持无参数构造函数和初始值设定项

我有一个从EF模型返回数据的方法。 我收到了上述消息,但我无法告诉我们如何规避问题。 public static IEnumerable GetFundedCount() { var today = DateTime.Now; var daysInMonth = DateTime.DaysInMonth(today.Year, today.Month); var day1 = DateTime.Now.AddDays(-1); var day31 = DateTime.Now.AddDays(-31); using (var uow = new UnitOfWork(ConnectionString.PaydayLenders)) { var r = new Repository(uow.Context); return r.Find() .Where(x => x.AppliedOn >= day1 && x.AppliedOn new { x.BuyerId, x.AppliedOn }) .Select(x => new FundedCount( x.Key.BuyerId, […]

在LINQ查询中调用SQL用户定义的函数

我很难让这个工作。 我正在尝试使用IQueryable上的以下Filter助手进行半径搜索。 在RadiusSearch应用之前,还有一组其他filter可以应用。 顺序不应该真正重要,因为目标是将查询推迟到ToList()操作。 public static IQueryable RadiusSearch(this IQueryable communities) { var centerLatitude = 30.421278; var centerLongitude = -97.426261; var radius = 25; return communities.Select(c => new ApiSearchCommunity() { CommunityId = c.CommunityId, City = c.City, //Distance = c.GetArcDistance(centerLatitude, centerLongitude, c.Latitude, c.Longitude, radius) }); } 我可以以某种方式编写一个像GetArcDistance这样的帮助程序,然后在SQL上调用UDF吗? 我想要生成的查询如下 SELECT comms.community_id, comms.city, comms.distance FROM ( SELECT c.community_id, c.city, […]

如何在LINQ to Entities中使用SQL’LIKE’?

我有一个文本框,允许用户指定搜索字符串,包括通配符,例如: Joh* *Johnson *mit* *ack*on 在使用LINQ to Entities之前,我有一个存储过程,它将该字符串作为参数并执行: SELECT * FROM Table WHERE Name LIKE @searchTerm 然后我会在传入之前执行String.Replace(’*’,’%’)。 现在有了LINQ to Entities,我正在尝试完成同样的事情。 我知道有StartsWith,EndsWith和Contains支持,但它不会以我需要的方式支持它。 我读到了“SqlMethods.Like”并尝试了这个: var people = from t in entities.People where SqlMethods.Like(t.Name, searchTerm) select new { t.Name }; 但是我得到以下exception: LINQ to Entities does not recognize the method ‘Boolean Like(System.String, System.String)’ method, and this method cannot be […]

在LINQ中获取结果函数而不转换为存储表达式

我需要从一个需要在LINQ查询中运行的函数中获取结果。 这个结果绑定到网格但在运行时遇到这个错误: LINQ to Entities无法识别方法’System.String GetName(System.Type,System.Object)’方法,并且此方法无法转换为商店表达式。 这是我的代码: public IQueryable GetForRah_CapacityList(XQueryParam param) { var result = (from x in Data() select new { Rah_CapacityId = x.Rah_CapacityId, Rah_CapacityName = x.Rah_CapacityName, Rah_St = Enum.GetName(typeof(Domain.Enums.CapacityState), x.Rah_St), Rah_LinesId = x.Rah_LinesId }).OrderByDescending(o => new { o.Rah_CapacityId }); return result; }

使用linq-to-entities将字符串转换为datetime的一个大问题

如何使用linq将字符串转换为日期时间到实体…. 我有以下查询,其中visit_date列数据类型是字符串… var memberl = from v in abc.visits join m in abc.members on v.member_Id equals m.member_Id where Convert.ToDateTime(v.visit_Date) >= startdate && Convert.ToDateTime(v.visit_Date) <= enddate group m by new { m.member_Firstname, m.member_Lastname, m.member_Id } into g orderby g.Count() select new { numVisits = g.Count(), firstname = g.Key.member_Firstname, lastname = g.Key.member_Lastname }; 不幸的是我无法改变架构…… 我有错误: linq to […]