我在数据库中有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();
我该怎么做?
答案 0 :(得分:0)
从代码看来,您似乎正在使用实体框架作为ORM,因此,您可以轻松使用功能强大的EF的Skip
和Take
方法,而不必编写硬编码的sql。例如:
db.Customers.OrderBy(c => c.CustomerId).Skip(1).Take(2);
其余的逻辑似乎都很好。