在这个例子中here,Scott展示了对dbContext执行Linq查询并将结果直接绑定(bind)到GridView以显示产品列表。他的示例使用了CodeFirst的CTP4版本。但是,当我尝试使用最新版本的EntityFramework4.1做同样的事情时,我收到以下错误:Databindingdirectlytoastorequery(DbSet,DbQuery,DbSqlQuery)isnotsupported.InsteadpopulateaDbSetwithdata,forexamplebycallingLoadontheDbSet,andthenbindtolocald
varislemList=(fromislinentities.Islemlerwhere(isl.KayitTarihi.Date>=dbas&&isl.KayitTarihi.Value.Date它给出错误:LINQtoEntities不支持日期...我如何在linq中获取日期。 最佳答案 使用EntityFunctions.TruncateTime. 关于c#-LinqtoEntity从DateTime获取日期,我们在StackOverflow上找到一个类似的问题:
假设我有一个模式,表示问题实体。每个问题都可以投赞成票、投反对票,或者当然,根本不投票——就像在StackOverflow中一样。我想获得给定用户的投票数。intnumber=(fromqinuserDbContext.Questionsfromqvinq.QuestionVoteswhereqv.IsVoteUpselectqv).Count();我想编写相同的查询,但使用方法语法。我如何使用相同的示例执行此操作? 最佳答案 您可以使用SelectMany:userDbContext.Questions.SelectMany(x=
我需要对一些密码进行加盐和哈希处理,以便我可以将它们安全地存储在数据库中。关于如何最好地使用LinqToSQL执行此操作,您有什么建议或想法吗? 最佳答案 在这种情况下,LINQtoSQL没有太多相关性。您可以使用任何您想要的机制,因为您不会在SQL中进行散列和加盐。保存密码的步骤如下:以明文形式接收密码以及用户ID。生成(并记住)盐。将盐与密码文本结合起来,例如放在它前面或附加它。使用哈希函数对结果文本进行哈希处理将用户ID、哈希和盐存储在您的数据库中。验证密码的步骤如下:以明文形式接收密码以及用户ID。从数据库中为提供的用户ID
我只想选择养宠物的人。当我执行查询时varquery=frompinpeoplejoinptsinpetsonpequalspts.Ownerintogrpselectnew{grp=grp,PersonName=p.FirstName};没有宠物的人也被选中。我的list是Person[]prn=newPerson[3];prn[0]=newPerson();prn[0].FirstName="Jon";prn[0].LastName="Skeet";prn[1]=newPerson();prn[1].FirstName="Marc";prn[1].LastName="Gravell
我在尝试使用Microsoft.SqlServer.Types.SqlGeography时遇到了很多问题.我很清楚在LinqtoSql中对此的支持不是很好。我尝试了很多方法,从预期的方式开始(数据库类型为geography,CLR类型为SqlGeography)。这会产生NotSupportedException,这是通过博客广泛讨论的。然后我走上了治疗geography的道路。列作为varbinary(max),如geography是以二进制形式存储的UDT。这似乎工作正常(使用一些二进制读写扩展方法)。但是,我现在遇到了一个相当模糊的问题,这似乎并没有发生在许多其他人身上。Syst
我不明白Current怎么可以为null而LINQ函数Last()怎么可以返回一个对象。我认为Last使用GetEnumerator并一直持续到current==null并返回对象。然而,正如您所见,第一个GetEnumerator().Current为空,最后一个以某种方式返回一个对象。linqLast()是如何工作的?items.GetEnumerator().Currentitems.Last() 最佳答案 来自使用Reflector在System.Core.dll上:publicstaticTSourceLast(thisI
如何遍历IQueryable并删除一些我不需要的元素。我正在寻找这样的东西varitems=MyDataContext.Items.Where(x=>x.Container.ID==myContainerId);foreach(Itemiteminitems){if(IsNotWhatINeed(item))items.Remove(item);}这可能吗?提前致谢 最佳答案 你应该可以像这样进一步查询varfiltered=items.Where(itm=>IsWhatINeed(itm));还要注意bool函数的细微变化,从否定
我有一个xml文件,它返回一组由属性值唯一的元素。这会带来一个问题,因为我无法通过名称选择节点:1.28737213021SomeCookbook049.95ABCWROX我正在使用linq来填充“产品”类。我可以按位置选择元素,但是如果节点不存在,这就会成为一个问题。有没有办法根据节点的属性值来选择节点?在下面的示例中,如果@name属性="ATR_FamilyName",我可以获取arr节点吗?在xpath中它将是:doc/arr[@name='ATR_FamilyName']/str这是我的linqtoxml查询:varquery=fromrtinresultswhere(Str
我必须查询这个表:symboltime----------------aaa2013-04-1809:10:28.000bbb2013-04-1809:10:27.000aaa2013-04-1809:10:27.000bbb2013-04-1809:10:26.000对于具有最大时间值的所有不同符号,我需要一行。我必须如何编写我的linq查询?提前致谢 最佳答案 按符号对行进行分组,然后用最大时间从每个组项中进行选择(表是上下文中的数据库表名):fromrinTablegrouprbyr.symbolintogselectg.Or