当前位置: 首页 > 编程语言 > C#

是否可以在EntityFramework中对SelectMany使用Select(l => new {})分享

时间:2023-04-10 23:31:25 C#

C#学习教程:IsitpossibletouseSelect(l=>new{})onSelectManyinEntityFramework我不确定,但我想在这里问一下是否可能。可以吗?publicIQueryableGetInfo(intcount,bytelanguageId){returndb.Info.SelectMany(i=>i.LanguageInfo).Where(l=>l.Language.id==languageId).Select(l=>newInfo{AddDate=l.Info.AddDate,Description=l.Description,EntityKey=l.Info.EntityKey,id=l.Info.id,Title=l.Title,ViewCount=l.Info.ViewCount}).OrderByDescending(i=>i.id).取(数);}执行此方法时发生错误无法在LINQtoEntities查询中构造实体或复杂类型“GuideModel.Info”。这是否意味着“不可能”?谢谢这个错误本质上表明实体框架不知道如何创建Info对象,因为它没有绑定到表对象。(换句话说,对IQueryable的Select调用无法转换为等效的SQL。)您可以在客户端执行选择投影:publicIQueryableGetInfo(intcount,bytelanguageId){returndb.Info.SelectMany(i=>i.LanguageInfo).Where(l=>l.Language.id==languageId).Take(count).AsEnumerable().Select(l=>newInfo{AddDate=l.Info.AddDate,Description=l.Description,EntityKey=l.Info.EntityKey,id=l.Info.id,标题=l.Title,ViewCount=l.Info.ViewCount}).OrderByDescending(i=>i.id);您可以使用Select(l=>new...)但不能使用Entity类型。您需要使用匿名类型或带有无参数构造函数的POCO类型。实体类型之所以“特殊”,是因为它们与ObjectContext交互的方式。您可以选择它们,但不能在查询中创建新的。下面的代码对我有用。这里的“SearchTerm”是一个复杂的类型。谢谢Jason:)以上就是C#学习教程:是否可以在EntityFramework中使用Select(l=>new{})forSelectMany分享所有内容,如果对大家有用,需要进一步了解C#学习教程,希望大家关注——varlstSynonyms=TechContext.TermSynonyms.Where(p=>p.Name.StartsWith(startLetter)).AsEnumerable().Select(u=>newSearchTerm{ContentId=u.ContentId,Title=u.Name,Url=u.Url});本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: