草庐IT

LINQ_ENABLED

全部标签

c# - 对象内对象的 Entity Framework LINQ 表达式

编辑这个问题,希望让它更清楚。我们首先设置了EntityFramework代码。为了示例的目的,我简化了两个类,实际上还有大约10多个类类似于“Record”,其中Item是一个导航属性/外键。项目类别:publicclassItem{publicintId{get;set;}publicintAccountId{get;set;}publicListUserItemMappings{get;set;}publicListGroupItemMappings{get;set;}}记录类:publicclassRecord{publicintItemId{get;set;}publicIt

c# - NHibernate 高效删除使用 LINQ Where 条件

有一个NHibernate的存储库,带有这样的LINQ查询varq=fromxinSomeIQueryablewherex.A1==a1&&x.B1==b1selectx;是否有解决方案如何获取此WHERE过滤器并将其应用于“一次性删除”,这似乎只能通过HQL实现:varcmd=string.Format("deletefromSomeEntitywherex.A1='{0}'andx.B1={1}",a1,b1);session.CreateQuery(cmd).ExecuteUpdate(); 最佳答案 现在可以使用Nhiber

c# - 从列表中选择 Lambda 或 linq

我正在尝试根据集合对象的ID从linq中的集合中进行选择。List>master=newList>();Listm1=newList();Listm2=newList();master.Add(m1);master.Add(m2);m1.Add(newmyobject{name="n1",id=1});m1.Add(newmyobject{name="n2",id=2});m1.Add(newmyobject{name="n3",id=3});m2.Add(newmyobject{name="m1",id=1});m2.Add(newmyobject{name="m2",id=2});

c# - Moq - 存储库中的 Linq 表达式 - 在设置中指定表达式

我的界面上有一个方法,如下所示:TGetSingle(Expression>criteria);我正在尝试模拟这样的设置(我意识到这行不通):_mockUserRepository=newMock>();_mockUserRepository.Setup(c=>c.GetSingle(x=>x.EmailAddress=="a@b.com")).Returns(newUser{EmailAddress="a@b.com"});我意识到我向设置传递了错误的参数。看完thisanswer我可以通过传递表达式来让它工作,就像这样:_mockUserRepository.Setup(c=>c.

c# - Linq To Sql 仅比较时间

如何只比较DateTime对象的时间而不获取以下内容错误:Anexceptionoftype'System.NotSupportedException'occurredinmscorlib.dllbutwasnothandledinusercodeAdditionalinformation:Thespecifiedtypemember'TimeOfDay'isnotsupportedinLINQtoEntities.Onlyinitializers,entitymembers,andentitynavigationpropertiesaresupported.我的代码:vardate=

c# - Linq 缓慢具体化复杂查询

我经常发现,如果我在Linq查询中有太多连接(无论是使用EntityFramework还是NHibernate)和/或生成的匿名类的形状太复杂,Linq需要很长时间才能实现结果设置为对象。这是一个一般性问题,但这里有一个使用NHibernate的具体示例:varlibraryBookIdsWithShelfAndBookTagQuery=(fromshelfinsession.Query()joinsbttrefinsession.Query()onshelf.ShelfIdequalssbttref.ShelfIdjoinbookTaginsession.Query()onsbttr

c# - 查询 "Memory"的 LINQ

是否LINQ有办法在查询时“记住”它以前的查询结果吗?考虑以下情况:publicclassFoo{publicintId{get;set;}publicICollectionBars{get;set;}}publicclassBar{publicintId{get;set;}}现在,如果两个或更多Foo具有相同的Bar集合(无论顺序是什么),它们被认为是相似Foo.例子:foo1.Bars=newList(){bar1,bar2};foo2.Bars=newList(){bar2,bar1};foo3.Bars=newList(){bar3,bar1,bar2};在上面的例子中,foo

c# - Linq 性能 : should I first use `where` or `select`

我在内存中有一个很大的List,来自一个具有大约20个properties的类。我想仅根据一个property过滤此列表,对于特定任务我只需要该property的列表。所以我的查询是这样的:data.Select(x=>x.field).Where(x=>x=="desiredvalue").ToList()先使用Select还是使用Where哪个性能更好?data.Where(x=>x.field=="desiredvalue").Select(x=>x.field).ToList()如果这与我将数据保存在内存中的数据类型或字段类型有关,请告诉我。请注意,我也需要这些对象来执行其他任

c# - 将字符串解析为 LINQ 查询

将LINQ字符串解析为查询的最佳做法是什么方法?或者换句话说,哪种方法最适合转换:stringquery=@"fromelementinsourcewhereelement.Property=""param""selectelement";进入IEnumerable=fromelementinsourcewhereelement.Property="param"selectelement;假设source指的是IEnumerable或IQueryable在本地范围内。 最佳答案 从.NET4.6开始,您可以使用CSharpScrip

c# - 如何将使用 ROW_NUMBER() 的查询转换为 linq?

我的表由三列组成(sno、name、age)。我正在使用额外的列(行号)从数据库中检索此表,我使用了以下代码:select*from(selectROW_NUMBER()over(orderbySNoasc)asrowindex,SNo,Name,AgefromtblExample)asexamplewhererowindexbetween((pageindex*10)+1)and((pageindex+1)*10)请注意,pageindex是一个变量,它接受用户传递的一些整数值。我的数据库是SqlServer2008。我想使用Linq编写相同的查询。我该怎么做?