Articles of linq

如何使用IQueryable方法返回额外数据?

我正在使用Entity Framework和Breeze。 对于实体,我想提供一些与实体相关的数据。 通过查询实体表并连接到其他表,可以最有效地获取此数据; 此查询包括按子查询分组。 我试图通过将它作为[NotMapped]字段添加到实体来解决这些额外数据: [NotMapped] public string NotMappedField { get; set; } 那么我基本上想要替换这个webapi控制器方法 [HttpGet] public IQueryable MyObjects() { return _contextProvider.Context.MyObjects; } 有这样的事情: public IQueryable MyObjectsWithExtraData() { var query = from o in _contextProvider.Context.MyObjects // big complex query select new MyObject { FieldA = o.FieldA, FieldB = o.FieldB, // all fields NotMappedField = x.ResultFromComplexJoin […]

关系数据库和OO语言

在典型的ASP.NET Web应用程序体系结构中,我们使用诸如C#之类的OO语言和诸如SQL服务器之类的关系数据库来获取数据。 我正在读一本关于Linq的书,上面写着“问题是OO编程语言和关系数据库之间存在差距” 作者究竟想要暗示什么? 编辑:谢谢你的答案。 我不确定我理解LINQ如何解决这个问题。 我可能错了,但似乎LINQ是用于数据库通信的API,就像ADO.NET一样

带有大量嵌套列表的列表上的LINQ

我遇到嵌套列表的问题。 所以我有3个课: public class Class1 { public string Name {get;set;} public List Class2List {get;set;} } public class Class2 { public string Name {get;set;} public List Class3List {get;set;} } public class Class3 { public string Name {get;set;} } 我想从Class1中选择所有Class3.Name,其中Class2.Name =“something”,重要的是结果将是IEnumerable字符串 。 我该如何解决?

C#模式搜索

我的下面的代码显示在文件中搜索特定模式….无论如何,我可以添加到此代码,以便我可以搜索可能的四种模式。 因此,如果它与第一个不匹配,那么它会查看它是否与第二个匹配,依此类推…… 非常感谢。 byte[] pattern = new byte[5] { 00, 00, 00, 08, 00 }; byte[] file = File.ReadAllBytes(“C:\\123.cfg”); var result = Enumerable.Range(0, file.Length – pattern.Length + 1) .Where(i => pattern.Select((b, j) => new { j, b }) .All(p => file[i + pj] == pb)) .Select(i => i + pattern.Length – 1); int[] PatternArray = […]

LINQ to XML递归查询

我有一个像文档树一样的xml站点地图,它看起来像这样: FileName Admin FileName FileName FileName FileName *请注意,这不是我的实际xml文件。 实际的xml文件太大而无法显示。 基本上你需要消除的是,有可能存在“X”数量的文件夹彼此嵌套,并且在这些文件夹中的某些点上,可能存在“X”数量的文件以及子文件夹。 此外, 某些文件夹具有安全性,该文件夹由文件夹中的所有内容 (文件,子文件夹,子文件夹中的文件等)inheritance。 我试图提出一个LINQ to XML查询,以获得基于该文件GUID的给定文件的安全性,它适用于level-1和level-2文件,但是当我尝试在一个文件上运行查询时文件是3个文件夹深,它失败,我得到一个nullreferenceexception。 这是我正在使用的查询: XDocument sitemap = XDocument.Load(HttpContext.Current.Server.MapPath(“/…/sitemap.xml”)); XElement fileFromMap = sitemap.Descendants(“File”).Where( file => file.Attribute(“GUID”).Value == guid).First(); XElement currentFile = new XElement(“File”, fileFromMap.Value, fileFromMap.Ancestors(“Folder”).SelectMany( folder => { XElement security = folder.Element(“Security”); return (security != null ? security.Elements(“Role”) : null); })); *和信用到期的信用,我在这里得到了这个查询 nullreferenceexception发生在currentFile变量的声明中,我不知道为什么。 […]

查询数据表字段包含列表中的任何项的行

我是LINQ的新手。 我想查询描述列字符串的所有行(示例值“我今天感觉很幸运。”)包含/匹配List lst中的任何项目。 列表项的示例包含{“lucky”,“bad”,“ok”}。 我想通过只使用linq来实现,但我混淆了以下方法正确吗? 谢谢。 选项1: var item = from a in datatbl.AsEnumerable() from b in lst where a.Field(“description”).contains(b) select a; 选项2: var item = from a in datatbl.AsEnumerable() where lst.Any(x=> a.Field(“description”).Contains(x)) select a;

在EntityFramework中克隆具有多对多关系的对象

我想要的只是创建一个对象的精确副本。 我上课了 [Serializable] public class Project { public int Id { get; set; } public String Name { get; set; } //navigational fields.. public virtual List BusinessRequirements { get; set; } } 和另一个 [Serializable] public class BusinessRequirement { public int Id { get; set; } public String Name { get; set; } public String Description […]

Expression.Call中的ToUpper()

下面的代码工作,但我想介绍一个ToUpper() var predicate = Expression.Lambda<Func>( Expression.Call( Expression.PropertyOrField(parameter, “FirstName”), “Contains”, null, Expression.Constant(“myvalue”.ToUpper())), parameter ); 结果是: {Param_0 => Param_0.FirstName.Contains(“MYVALUE”)} 但我想这样: {Param_0 => Param_0.FirstName.ToUpper().Contains(“MYVALUE”)} 我该怎么改变?

根据一列获得两个数据表之间的差异

我有以下情况: 表A有50条记录,表B有2条记录。 我需要定义一个新表,比如TableDiff,它应包含表A中48个记录中不存在的记录 我的问题是表A和表B不完全相同,但我有两个表中存在的字段rowId ,我需要使用它进行比较。

在nhibernate中的Linq-ing计算属性无法解析属性Error

我一直试图通过遵循Hendry Luk的计算属性解决方案在我的持久层中创建一个计算属性 。 我可以使用linq查询从数据库中选择值: var result = from parcel in Repository.Query(); 当我尝试在所选结果上执行某个位置时,我得到一个无法解决属性错误。 这是我的代码的样子。 我的型号: namespace ConsoleApplication14 { using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; public class Common1 : ICommon { public virtual int Id { get; set; } public virtual string Name { get; set; } //public static readonly Expression<Func> CalculatedDisplayExpression = […]