Tag: linq

在linq中创build批次

有人可以build议一种方法来创buildlinq中的一定大小的批次? 理想情况下,我希望能够以一些可configuration数量的块进行操作。

IQueryable <T>和IEnumerable <T>有什么区别?

IQueryable<T>和IEnumerable<T>什么区别? 另请参见与此问题重叠的IQueryable和IEnumerable之间有什么区别 。

结合两个expression式(Expression <Func <T,bool >>)

我有两个Expression<Func<T, bool>> ,我想把它们作为OR,AND或NOT,并得到一个相同types的新expression式 Expression<Func<T, bool>> expr1; Expression<Func<T, bool>> expr2; … //how to do this (the code below will obviously not work) Expression<Func<T, bool>> andExpression = expr AND expr2

LINQ – stream利和查询expression式 – 有没有比其他的好处?

自从generics以来,LINQ是对.NET最大的改进之一,它节省了大量的时间和代码。 然而,stream畅的语法似乎比查询expression式语法更加自然。 var title = entries.Where(e => e.Approved) .OrderBy(e => e.Rating).Select(e => e.Title) .FirstOrDefault(); var query = (from e in entries where e.Approved orderby e.Rating select e.Title).FirstOrDefault(); 两者之间有什么区别,还是比其他人有什么特别的好处呢?

LINQ to Entities不能识别该方法

试图执行linq查询时出现以下错误: LINQ to Entities不识别方法'布尔IsCharityMatching(System.String,System.String)'方法,并且此方法不能被转换为存储expression式。 我读过很多以前的问题,人们得到相同的错误,如果我正确地理解这是因为LINQ to Entities要求整个LINQ查询expression式被转换为服务器查询,因此你不能调用一个外部方法在里面。 我还没有能够把我的情景转化成现在可行的东西,我的大脑开始融化,所以我希望有人能够指引我正确的方向。 我们正在使用entity framework和规范模式(我是新来的)。 以下是使用规范的代码: ISpecification<Charity> specification = new CharitySearchSpecification(charityTitle, charityReference); charities = charitiesRepository.Find(specification).OrderBy(p => p.RegisteredName).ToList(); 这里是linqexpression式: 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 (!this.registeredName.ToLower().Contains(name.ToLower()) && !this.alias.ToLower().Contains(name.ToLower()) && !this.charityId.ToLower().Contains(name.ToLower())) […]

哪个方法执行得更好:.Any()vs .Count()> 0?

在System.Linq命名空间中,我们现在可以扩展IEnumerable的Any()和Count() 扩展方法 。 我最近被告知,如果我想检查一个集合包含1个或多个项目,我应该使用.Count() > 0扩展方法,而不是.Count() > 0扩展方法,因为.Count()扩展方法必须遍历所有的项目。 其次,一些集合有一个属性 (不是扩展方法),即Count或Length 。 使用这些,而不是.Count()或.Count()会更好吗? 是/娜?

返回匿名types结果?

使用下面的简单示例,使用Linq to SQL返回多个表的结果的最佳方法是什么? 说我有两个表: Dogs: Name, Age, BreedId Breeds: BreedId, BreedName 我想把所有的狗都BreedName他们的BreedName 。 我应该让所有的狗使用这样的东西没有问题: public IQueryable<Dog> GetDogs() { var db = new DogDataContext(ConnectString); var result = from d in db.Dogs join b in db.Breeds on d.BreedId equals b.BreedId select d; return result; } 但是,如果我想要品种的狗,试试这个我有问题: public IQueryable<Dog> GetDogsWithBreedNames() { var db = new DogDataContext(ConnectString); var result […]

LINQ对DataTable的查询

我试图对DataTable对象执行一个LINQ查询,奇怪我发现在DataTable上执行这样的查询并不简单。 例如: var results = from myRow in myDataTable where results.Field("RowNo") == 1 select results; 这是不允许的。 我如何得到这样的工作? 我很惊讶LINQ查询不允许在数据表上!

在LINQ中有多个“order by”

我有两个表, movies和categories ,我得到一个有序列表首先categoryID然后按名称 。 电影表有三列, ID,名称和CategoryID 。 类别表2有列, ID和名称 。 我尝试了类似下面的内容,但是没有奏效。 var movies = _db.Movies.OrderBy( m => { m.CategoryID, m.Name })

按多列分组

我怎么能在LINQ中做GroupBy多列 在SQL中与此类似的东西: SELECT * FROM <TableName> GROUP BY <Column1>,<Column2> 我如何将其转换为LINQ: QuantityBreakdown ( MaterialID int, ProductID int, Quantity float ) INSERT INTO @QuantityBreakdown (MaterialID, ProductID, Quantity) SELECT MaterialID, ProductID, SUM(Quantity) FROM @Transactions GROUP BY MaterialID, ProductID