C# + LINQ + ADO.NET EF,加入 2 个表并返回所有内容,无需手动指定所有字段

标签 c# linq entity-framework ado.net

我在 ADO.NET Entity Framework 上有一个简单的 LINQ 查询,如下所示

var result = 
  from itemA in TableA
  join itemB in TableB on itemA.ID = itemB.ID
  select ??????

我正在尝试从 itemAitemB 中选择所有内容,而不指定所有 TableATableB

有什么想法吗???

最佳答案

这是你需要的吗?

    var result = from itemA in TableA 
                 join itemB in TableB on itemA.ID equals itemB.ID
                 select new { itemA, itemB };

或者,您可以声明一个结果类来帮助您构建结果对象,而无需指定所有字段:

    class ItemAB
    {
        public ItemAB(ItemA a, ItemB b)
        {
            FieldA1 = a.FieldA1;
            FieldA2 = a.FieldA2;
            FieldB1 = b.FieldB1;
            FieldB2 = b.FieldB2;

        }
        public int FieldA1 { get; private set; }
        public int FieldA2 { get; private set; }
        public int FieldB1 { get; private set; }
        public int FieldB2 { get; private set; }
    }

    var result = from itemA in TableA 
                 join itemB in TableB on itemA.ID equals itemB.ID
                 select new ItemAB(itemA, itemB);

关于C# + LINQ + ADO.NET EF,加入 2 个表并返回所有内容,无需手动指定所有字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1120663/

相关文章:

c# - 关闭 ReSharper 注释的提示

c# - Devexpress GridView 如何获取选定行的字段值?

sql - 为什么 LINQ Count() 返回多行而不是一行?

c# - 无法更新 EntitySet - 因为它有一个 DefiningQuery 并且不存在 <UpdateFunction> 元素

c# - LINQ .FromSQL 错误 InvalidOperationException : Sequence contains more than one matching element

c# - .Net C# 如何连接到外部 SQL Server 数据库? OleDb 还是其他?

c# - SQL 查询 CAST 到 int + 1 到 LINQ

C# 列表到没有 Foreach 的字典 [错误]

c# - 如何在C# MVC网站中连接MYSQL数据库?

c# - 根据另一个列表过滤一个列表c#