Tag: 加入

在简单/未命名的C#LINQ组连接中排序内部键源

我知道这个问题因使用的单词而变得奇怪。 但这是我正在学习LINQ组连接的MSDN页面上使用的术语,我将解释它们。 我正在尝试LINQ的数据是: class Product { public string Name { get; set; } public int CategoryID { get; set; } } class Category { public string Name { get; set; } public int ID { get; set; } } // Specify the first data source. static List categories = new List() { new Category(){Name=”Beverages”, ID=001}, […]

LINQ有条件地添加加入

我有一个LINQ查询,我试图从2个表返回数据,但我加入的表是有条件的。 这就是我想做的事情: if (teamType == “A”){ var query = from foo in context.People join foo2 in context.PeopleExtendedInfoA select foo; } else { var query = from foo in context.People join foo2 in context.PeopleExtendedInfoB select foo; } 然后我会进一步过滤查询。 我显然无法以这种方式设置它,因为我无法访问if块之外的“查询”,但它显示了我正在尝试做的事情。 这是我稍后尝试使用查询执行的示例: if (state != null) { query = query.Where(p => p.State == state); } if (query != […]

在linq-to-entities的一对多连接中只获得一条(最后一条)记录

我在linq-to-entities中有以下内容 clientprojects = (from p in this.SAPMappingEntities.SAP_Master_Projects join c in this.SAPMappingEntities.SAP_Master_ProjectPartners on c.project_no equals p.project_no where c.partner_name.Contains(clientstring) orderby p.start descending select new ClientProjects { client = c.partner_name, location = c.city +”, “+c.region, project_no = c.project_no, start_dt = p.start, end_dt = p.finish }).Take(50).ToList(); 我想更改此查询,以便每个SAP_Master_Project只获取具有最新update_dt的SAP_Master_ProjectPartners记录。 我怎样才能做到这一点? 编辑 有一个项目表,其中包含项目编号和项目详细信息,包括项目开始和结束日期。 有一个项目合作伙伴表,其中包含项目合作伙伴编号,名称,项目编号,更新日期和其他详细信息。 SAP_MASTER_PROJECT project_no 开始 完 SAP_MASTER_PROJECTPARTNERS partner_no project_no PARTNER_NAME […]

加入2个包含许多列的DataTables

我有一个问题,想要加入2个同一列的表。 表1包含Name,LastName Columns和许多其他列,表2包含Name,Comment和许多其他列。 我想用Name列加入它们,结果应该是Name,LastName,Comment和其他列。 我尝试使用左外侧Linq,但不知道如何编写select new,因为我不知道我有多少其他列。 我的表1: Name1 LastName … Niki Row … Hube Slang … Koke Mi … … … … … … … 表2: Name Comment … Koke “Hello” … Niki “Hi” … 结果应该是: Name LastName Comment … Niki Row “Hi” … Hube Sland … Koke Mi “Hello”… … … … 所以我试着将这些行连在一起。 但是它说table1中的数组比表2中的数组长。有没有其他方法可以加入它? […]

如何使用lambda表达式连接3个表?

我有一个简单的LINQ lambda连接查询,但我想添加一个带有where子句的第3个连接。 我该怎么做呢? 这是我的单个连接查询: var myList = Companies .Join( Sectors, comp => comp.Sector_code, sect => sect.Sector_code, (comp, sect) => new {Company = comp, Sector = sect} ) .Select( c => new { c.Company.Equity_cusip, c.Company.Company_name, c.Company.Primary_exchange, c.Company.Sector_code, c.Sector.Description }); 我想将以下SQL命令添加到上面的LINQ查询中并仍然保持预测: SELECT sector_code, industry_code FROM distribution_sector_industry WHERE service = ‘numerical’ 第3次连接将使用Sector_code上的Sector表和Distribution_sector_industry进行。 提前致谢。

在LINQ中选择JOIN后的所有列

我有两个表, Table1和Table2 。 我想执行一个左外连接: var myOutput = from object1 in Table1 join object2 in Table2 on object1.Property1 equals object2.Property2 into Table3 from output in Table3.DefaultIfEmpty() select new { object1.Property1, object1.Property2, //… output.Property3, output.Property4, //… }; 您可以注意到,我想从结果表中选择两个对象的所有属性(连接时考虑的可用对象包含某些类型的对象 – 这两种关系的对象都不同)。 当然,我可以在匿名选择中选择属性,如示例所示。 我的问题是如何避免手动指定所有属性? 我希望有类似SELECT * FROM TABLE3东西,其中TABLE3是结果关系(在连接TABLE1和TABLE2 )。 提前感谢您的线索。