合并两个表并将查询从它们写入列表

时间:2019-04-29 09:00:15

标签: c# asp.net sql-server asp.net-mvc

我在数据库中有2个表-客户和产品。 我通过跳过表中的第一行然后获得前两行来执行选择。 我需要在List cusPod中获取结果。

List<Customer> customers = db.Database.SqlQuery<Customer>("SELECT * FROM Customers ORDER BY CustomerId OFFSET 1 ROWS FETCH NEXT 2 ROWS ONLY").ToList();
List<Product> products = db.Database.SqlQuery<Product>("SELECT * FROM Products ORDER BY ProductId OFFSET 1 ROWS FETCH NEXT 2 ROWS ONLY").ToList();
            var listSas = from p in products
                          join c in customers on p.ProductId equals c.CustomerId
                          select new { ProductId = p.ProductId, ProductName = p.ProductName, DateStart = p.DateStart, DateEnd = p.DateEnd, DateRegister = p.DateRegister, PriceCustomer = p.PriceCustomer, CheckPay = p.CheckPay, CustomerId = p.CustomerId, FIO = c.FIO, Email = c.Email, PhoneNumber = c.PhoneNumber };
            SidebarController.cusPod = listSas.ToList();

我该怎么做?

1 个答案:

答案 0 :(得分:0)

从代码看来,您似乎正在使用实体框架作为ORM,因此,您可以轻松使用功能强大的EF的SkipTake方法,而不必编写硬编码的sql。例如:

db.Customers.OrderBy(c => c.CustomerId).Skip(1).Take(2);

其余的逻辑似乎都很好。