Tag: linq

什么是支持LINQ的好的“移动”.NET数据库?

我正在重构一个应用程序,我决定使用移动/嵌入式数据库。 我一直在阅读有关SQL Server Compact Edition的内容,但我想知道是否有人知道可以使用的任何其他数据库并且没有大量的下载大小,因为我当前的应用程序大约是2MB(安装程序)。 SQLite会很好,但AFAIK目前LINQ-to-SQLite的GSoC实现还是比较错误的。 谢谢!

使用C#MongoDB LINQ和鉴别器

我有一个MongoDB集合,其中包含三个不同类(A,B,C)的文档,这些类都inheritance自公共类D. 使用官方C#驱动程序,我插入了所有三种类型(A,B,C)的文档,它们都与_t鉴别器一起正确显示,并且在我的代码中,他们的类映射被注册。 如果我发出LINQ查询,如下所示(使用VB): dim Result = database.GetCollection(“mycol”).AsQueryable(Of C).Where(some where clause) 如果我计算结果,我收到一个错误“元素’来自类A的元素名称’与类C的任何字段或属性都不匹配。” 判断器是不是要在AsQueryable(Of C)代码中AsQueryable(Of C) ? 当我发出.Count我的Where子句(特定于C类元素)被应用于A,B和C的文档。 我尝试添加.OfType(Of C)没有效果,尝试使用.ToList首先转换为List,但我继续得到相同的错误。 有任何想法吗? 作为背景,我的客户端代码通常会处理类型为D的对象.A,B,C共享许多从Dinheritance的公共属性,我想将索引放在上面,因此我把它们放在一个集合中。 但是,偶尔我需要在特殊情况下直接引用类型A,B或C的对象。

使用Entity Framework从SQL数据库中获取所有内容

我有这样的产品清单 var r = db.Products.Where(x => x.Sites .Where(z => z.Key == associatedProducts.Key) .Any() ).ToList() 有一个名为Products的实体,我想从产品中获取所有元素,但那些存在于associatedProducts.Products中 我怎样才能做到这一点 ?

通过计算MD5获取重复的文件列表

我有一个包含文件路径的数组,我想列出那些基于MD5重复的文件。 我像这样计算他们的MD5: private void calcMD5(Array files) //Array contains a path of all files { int i=0; string[] md5_val = new string[files.Length]; foreach (string file_name in files) { using (var md5 = MD5.Create()) { using (var stream = File.OpenRead(file_name)) { md5_val[i] = BitConverter.ToString(md5.ComputeHash(stream)).Replace(“-“, “”).ToLower(); i += 1; } } } } 从上面我能够计算他们的MD5,但是如何只获得那些重复的文件的列表。 如果还有其他方法可以让我知道,我也是Linq的新手

选择投影中的索引

我希望我的索引从大于0的数字开始,同时执行以下操作: var dataSource = WebConfigurationHelper.GetSupportedDomainsString().Select((domain, index) => new { index , Name = domain }); 所以我的输出成为: index=2 domain=zombieland index=3 domain=mydomain 有可能吗?

如何在LINQ中在单个连接中的多个字段上进行左连接

我正在尝试对LINQ执行这个简单的SQL查询。 但它给我错误。 这是需要转换为LINQ的SQL查询 DECLARE @groupID int SET @groupID = 2 SELECT * FROM dbo.Person p LEFT JOIN dbo.PersonGroup pg ON ( p.PersonID = pg.PersonID AND pg.GroupID = @groupID) 忽略@groupID。 它将作为LINQ查询的函数参数提供。 这是我试过的LINQ查询。 from p in Person join pg in PersonGroup on new { p.PersonID, groupID } equals new { pg.PersonID, pg.GroupID } into t from rt […]

无法将类型’List ‘隐式转换为’IEnumerable ‘

试图左转加入2个表 public IEnumerable GetApplicant() { IEnumerable applicantdata = Cache.Get(“applicants”) as IEnumerable; if (applicantdata == null) { var applicantList = (from a in context.Profiles join app in context.APPLICANTs on a.PROFILE_ID equals app.Profile_id into joined from j in joined.DefaultIfEmpty() select new { Profiles = a, APPLICANTs= j, }).Take(1000); applicantdata = applicantList.AsQueryable().OrderBy(v => v.APPLICANT_ID).ToList(); if (applicantdata.Any()) { Cache.Set(“applicants”, […]

LINQ groupby语句带键

我的查询的语法很好但不是输出,这真的很奇怪。 我有下表: | AppointID | UserID | AppointSet | AppointResolved | AppointStatus | AppointmentDatetime | 1 | 1 | 3/1/2011 | 3/1/2011 | 1 | 3/15/2011 | 2 | 1 | 3/2/2011 | 3/5/2011 | 4 | 3/16/2011 | 3 | 1 | 3/2/2011 | 3/11/2011 | 2 | 3/11/2011 | 4 | 1 | […]

List.All()和List.TrueForAll()之间的区别

在List上操作时, .All()和.TrueForAll()之间是否有实际区别? 我知道.All()是IEnumerable一部分,为什么要添加.TrueForAll() ?

请解释System.Linq.Enumerable.Where(Func predicate)

我无法理解MSDN文档对于接受谓词的Where方法的重载,该谓词有两个参数,其中int,据说代表源元素的索引,无论这意味着什么(我认为一个可枚举的是一个顺序,你看不到下一个项目,更不用说它的任何索引)。 有人可以解释如何使用这个重载,特别是Func中的int是什么以及如何使用它?