Questions tagged «linq-to-entities»

该标签用于有关LINQ to Entities的问题,这意味着使用ADO.NET实体框架进行LINQ查询。请注意,这与LINQ to SQL或其他LINQ提供程序不同。


14
如何仅比较EF中DateTime中的日期组件?
我有两个日期值,一个已经存储在数据库中,另一个由用户使用DatePicker选择。用例是从数据库中搜索特定日期。 先前在数据库中输入的值始终具有12:00:00的时间分量,而从选择器输入的日期具有不同的时间分量。 我只对日期部分感兴趣,并且想忽略时间部分。 在C#中进行这种比较的方法是什么? 另外,如何在LINQ中做到这一点? 更新:在LINQ to Entities上,以下工作正常。 e => DateTime.Compare(e.FirstDate.Value, SecondDate) >= 0

4
LINQ to Entities无法识别该方法
尝试执行linq查询时出现以下错误: LINQ to Entities无法识别方法“ Boolean IsCharityMatching(System.String,System.String)”方法,并且该方法无法转换为商店表达式。 我已经阅读了很多以前的问题,人们会遇到相同的错误,如果我理解正确,那是因为LINQ to Entities要求将整个linq查询表达式转换为服务器查询,因此您不能调用外部方法在里面。我还无法将情景转换成可以正常使用的东西,而且我的大脑开始融化,所以我希望有人可以指出正确的方向。我们正在使用Entity Framework和规范模式(并且我都是新手)。 这是使用规范的代码: ISpecification<Charity> specification = new CharitySearchSpecification(charityTitle, charityReference); charities = charitiesRepository.Find(specification).OrderBy(p => p.RegisteredName).ToList(); 这是linq表达式: public System.Linq.Expressions.Expression<Func<Charity, bool>> IsSatisfied() { return p => p.IsCharityMatching(this.charityName, this.charityReference); } 这是IsCharityMatching方法: public bool IsCharityMatching(string name, string referenceNumber) { bool exists = true; if (!String.IsNullOrEmpty(name)) { if …


13
如何在数据库表的列中存储列表
因此,按照Mehrdad对一个相关问题的回答,我得到一个“适当的”数据库表列不存储列表的信息。相反,您应该创建另一个表,该表可以有效地保存所述列表的元素,然后直接或通过联结表链接到该列表。但是,我要创建的列表类型将由唯一项组成(与链接问题的成果不同)例)。此外,列表中的项目已明确排序-这意味着如果将元素存储在另一个表中,则每次访问它们时都必须对它们进行排序。最后,该列表基本上是原子性的,因为无论何时我想访问该列表,我都想访问整个列表,而不只是其中的一部分-因此,必须发出数据库查询以将各个部分汇总在一起似乎很愚蠢。名单。 AKX的解决方案(在上面链接)是序列化列表并将其存储在二进制列中。但这似乎也不方便,因为这意味着我必须担心序列化和反序列化。 有没有更好的解决方案?如果是没有更好的解决办法,那么为什么呢?似乎这个问题应该不时出现。 ...只是更多信息,让您知道我来自哪里。我刚开始大致了解SQL和数据库后,便开始使用LINQ to SQL,所以现在我有点被宠坏了,因为我希望处理我的编程对象模型而不必考虑对象的方式被查询或存储在数据库中。 谢谢大家! 约翰 更新:所以在得到的第一批答案中,我看到“您可以使用CSV / XML路线...但是不要!”。所以现在我正在寻找原因的解释。为我提供一些很好的参考。 另外,为了让您更好地了解自己的工作情况:在数据库中,我有一个功能表,该表将具有(x,y)对的列表。(该表还将包含其他信息,这些信息对我们的讨论没有影响。)我将永远不需要看到(x,y)对列表的一部分。而是,我将所有这些都放置在屏幕上。我将允许用户拖动节点以偶尔更改值或向图中添加更多值。


10
LINQ to Entities异常不支持指定的类型成员'Date'
在执行以下语句时出现异常。 DateTime result; if (!DateTime.TryParse(rule.data, out result)) return jobdescriptions; if (result < new DateTime(1754, 1, 1)) // sql can't handle dates before 1-1-1753 return jobdescriptions; return jobdescriptions.Where(j => j.JobDeadline.Date == Convert.ToDateTime(rule.data).Date ); 例外 The specified type member 'Date' is not supported in LINQ to Entities. Only initializers, entity members, and …

8
类型或名称空间名称“对象”在名称空间“ System.Data”中不存在
我正在使用实体,C#和SQL Server创建n层应用程序。我正在创建所有DAL组件通用的一些基类。在此基类中,我要处理由实体对象继承的ObjectContext基类的连接状态。 编译将引发以下错误: 类型或名称空间名称“对象”在名称空间“ System.Data”中不存在(您是否缺少程序集引用?) 同样,由于相同的原因,使用语句System.Data.Objects也无法解析。 我尝试将程序集添加为引用,但是在程序集引用的.NET选项卡中找不到它。 有什么想法吗?谢谢!

10
C#-使用属性名称作为字符串按属性排序的代码
当属性名称为字符串时,对C#中的属性进行编码的最简单方法是什么?例如,我想允许用户通过他们选择的属性(使用LINQ)对某些搜索结果进行排序。他们将在UI中选择“ order by”属性-当然是字符串值。有没有一种方法可以直接使用该字符串作为linq查询的属性,而不必使用条件逻辑(如果/否则,切换)将字符串映射到属性。反射? 从逻辑上讲,这就是我想要做的: query = query.OrderBy(x => x."ProductId"); 更新:我最初没有指定我正在使用Linq to Entities-看来反射(至少是GetProperty,GetValue方法)不能转换为L2E。

9
像实体框架中的运算符一样?
我们正在尝试在Entity Framework中为具有字符串字段的实体实现“ LIKE”运算符,但似乎不支持该运算符。有没有其他人试图做这样的事情? 这篇博客文章总结了我们遇到的问题。我们可以使用contains,但是只匹配LIKE最简单的情况。包含,startswith,endswith和indexof的组合可以使我们到达那里,但是需要在标准通配符和Linq to Entities代码之间进行转换。


1
方法无法转换为商店表达式
我看到此代码可用于LINQ to SQL,但是当我使用Entity Framework时,它将引发以下错误: LINQ to Entities无法识别方法'System.Linq.IQueryable'1 [MyProject.Models.CommunityFeatures] GetCommunityFeatures()'方法,并且该方法无法转换为商店表达式。 存储库代码是这样的: public IQueryable<Models.Estate> GetEstates() { return from e in entity.Estates let AllCommFeat = GetCommunityFeatures() let AllHomeFeat = GetHomeFeatures() select new Models.Estate { EstateId = e.EstateId, AllHomeFeatures = new LazyList<HomeFeatures>(AllHomeFeat), AllCommunityFeatures = new LazyList<CommunityFeatures>(AllCommFeat) }; } public IQueryable<Models.CommunityFeatures> GetCommunityFeatures() { return from …

3
LINQ to Entities无法识别方法'System.String Format(System.String,System.Object,System.Object)'
我有这个linq查询: private void GetReceivedInvoiceTasks(User user, List<Task> tasks) { var areaIds = user.Areas.Select(x => x.AreaId).ToArray(); var taskList = from i in _db.Invoices join a in _db.Areas on i.AreaId equals a.AreaId where i.Status == InvoiceStatuses.Received && areaIds.Contains(a.AreaId) select new Task { LinkText = string.Format(Invoice {0} has been received from {1}, i.InvoiceNumber, i.Organisation.Name), …

10
使用Linq to Entities的“ Contains()”解决方法?
我正在尝试创建一个查询,该查询使用Silverlight ADO.Net数据服务客户端api(并因此使用Linq To Entities)在where子句中使用ID列表。有人知道不支持“包含”的解决方法吗? 我想做这样的事情: List<long?> txnIds = new List<long?>(); // Fill list var q = from t in svc.OpenTransaction where txnIds.Contains(t.OpenTransactionId) select t; 试过这个: var q = from t in svc.OpenTransaction where txnIds.Any<long>(tt => tt == t.OpenTransactionId) select t; 但是得到了“不支持方法'Any'”。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.