草庐IT

LINQ_ENABLED

全部标签

C# LINQ to SQL : Refactoring this Generic GetByID method

我写了下面的方法。publicTGetByID(intid){vardbcontext=DB;vartable=dbcontext.GetTable();returntable.ToList().SingleOrDefault(e=>Convert.ToInt16(e.GetType().GetProperties().First().GetValue(e,null))==id);}基本上它是通用类中的一个方法,其中T是DataContext中的一个类。该方法从T的类型(GetTable)获取表格,并检查输入参数的第一个属性(始终是ID)。问题是我必须先将元素表转换为列表才能对属性执行

c# - 带有存储过程和用户​​定义表类型参数的 LINQ to SQL

我在SQLServer2008中使用LINQtoSQL和存储过程。除一个问题外,一切正常。L2S无法为以用户自定义表类型为参数的存储过程生成方法。dbml设计面板中的方法签名使用对象作为参数类型而不是表类型,当我尝试编译时出现错误:Error:DBML1005:MappingbetweenDbType'Structured'andType'System.Object'inParameter'ParaName'ofFunction'dbo.StoredProcName'isnotsupported.有没有办法解决这个问题?我不想回到传统的ADO.NET数据访问。

c# - Linq to XML - 更新/更改 XML 文档的节点

我有2个问题:1.我已经开始使用LinqtoXML,我想知道是否可以通过Linq更改XML文档。我的意思是,有没有像XDocumentxmlDoc=XDocument.Load("sample.xml");updateiteminxmlDoc.Descendants("item")where(int)item.Attribute("id")==id...2。我已经知道如何通过简单地使用创建和添加新的XMLElementxmlDoc.Element("items").Add(newXElement(......);但是我怎样才能删除单个条目呢?XML示例数据:

c# - 大型集合的 LINQ 性能

我有大量按字母顺序排序的字符串(最多1M)。我已经使用HashSet、SortedDictionary和Dictionary对这个集合进行了LINQ查询试验。我正在静态缓存集合,它的大小高达50MB,而且我总是针对缓存的集合调用LINQ查询。我的问题如下:不管是什么集合类型,性能都比SQL差很多(最多200ms)。当对底层SQL表执行类似的查询时,性能要快得多(5-10毫秒)。我已经按如下方式实现了我的LINQ查询:publicstaticstringReturnSomething(stringquery,intlimit){StringBuildersb=newStringBuild

c# - 最小起订量 - 安装方法中的 LINQ 谓词

在我的方法中,我让我的存储库执行此操作:boolisConditionMet=MyRepository.Any(x=>x.Condition==true);我正在尝试像这样使用MOQ来模拟这个:MyMockedRepository.Setup(x=>x.Any(y=>y.Condition==true)).Returns(true);但是,当代码执行时,存储库调用总是返回false。有没有办法使用MOQ来做到这一点?**编辑-根据请求添加代码**我正在使用NHibernate,所以我的Any方法在我的基础存储库中并按如下方式实现:publicvirtualboolAny(Express

c# - LINQ- 组合多个 List<T> 并按值排序 (.Net 3.5)

我正在尝试合并多个ListwhereT:IGetTime(即T将始终具有方法getTime())。然后我尝试按DateTime订购商品那getTime()返回。我的LINQ看起来像这样:publicstaticListCombine(Listone,Listtwo,Listthree){varresult=fromIGetTimeiteminonefromIGetTimeitem2intwofromIGetTimeitem3inthreeselectnew{item,item2,item3};returnresult.ToList();}我还没有添加orderby.应该看起来像这样:v

c# - LINQ to SQL - 使用抽象基类时的映射异常

问题:我想在多个程序集之间共享代码。此共享代码将需要与LINQtoSQL映射类一起使用。我遇到了同样的问题here,但我也发现了一个我觉得麻烦的解决方法(我不会说“错误”)。以下所有代码都可以在thissolution中下载.给定这张表:createtableUsers(Idintidentity(1,1)notnullconstraintPK_Usersprimarykey,Namenvarchar(40)notnull,Emailnvarchar(100)notnull)和这个DBML映射:我在一个“共享”程序集中创建了以下基类:namespaceTestLinq2Sql.Shar

c# - LINQ 中查询表达式和方法表达式的区别?

不知道上面的标题用词是否合适。就像a和b:varlist=Enumerable.Range(0,100);vara=fromlinlistwherel%2==0selectl;varb=list.Where(l=>l%2==0);我应该什么时候使用它们?有什么区别吗? 最佳答案 无,Query表达式编译成Method表达式。QuerySyntaxandMethodSyntaxinLINQ(C#)BecausequeriesreturnanIEnumerable,youcomposetheminmethodsyntaxbychaini

c# - LINQ Skip 仍然枚举跳过的项目

在下面的测试中:int[]data={1,2,3,4,5,6,7,8,9,10};Funcboom=x=>{Console.WriteLine(x);returnx;};varres=data.Select(boom).Skip(3).Take(4).ToList();Console.WriteLine();res.Select(boom).ToList();结果是:12345674567基本上,我观察到在这个例子中,Skip()和Take()工作得很好,Skip()没有那么懒惰股份()。似乎Skip()仍然枚举跳过的项目,即使它没有返回它们。如果我先执行Take(),这同样适用。我最

c# - 单元测试错误 : This function can only be invoked from LINQ to Entities

我正在编写一个MVC5互联网应用程序,我的表达式如下:publicExpression>IsExpiresDateTimeLessThanMinimumDaysLeftInFreeTrialSubscription(intminimumDaysLeftInSubscriptionForEmail){returnAccount=>System.Data.Entity.DbFunctions.DiffHours(Account.freeTrialEndDate,DateTime.UtcNow)从数据库中检索数据时,上述表达式正确完成。但是,在编写使用上述表达式的单元测试时,出现以下错误:T