EF框架使用sql语句查询
不论查询单条还是多条都需要加上ToList()
public ResultDto<Manage_LedgerDto> GetPageList(Manage_LedgerRequest queryBase, Expression<Func<Manage_LedgerDto, bool>> exp)
{
using (var db = new WarehouseContext())
{
//获取数量
var Number = queryBase.Number;
var Number1 =(int) Number / 3;
var Number2 = Number - Number1;
//获取输入的仓库ID
var StoreID = queryBase.SID;
//查询抽检的数据
var query1 = db.Database.SqlQuery<Manage_LedgerDto>("select top (@number) * from Manage_Ledger where IsKey=1 and StoreID=@ID order by newid()", new SqlParameter("@number", Number1),new SqlParameter("@ID", StoreID)).ToList();
var query2 = db.Database.SqlQuery<Manage_LedgerDto>("select top (@number) * from Manage_Ledger where IsKey=0 and StoreID=@ID order by newid()", new SqlParameter("@number", Number2),new SqlParameter("@ID", StoreID)).ToList();
//插入到子表中
Bills_SpotCheckChildDto bills_SpotCheckChildDto1 = new Bills_SpotCheckChildDto();
//插入到主表中
Bills_CheckDto bills_CheckDto1 = new Bills_CheckDto();
foreach (Manage_LedgerDto manage_LedgerDto1 in query1)
{
bills_SpotCheckChildDto1.LocationID = manage_LedgerDto1.LocationID;
bills_SpotCheckChildDto1.State = 1;//是关键设备
bills_SpotCheckChildDto1.CheckBillsCode = bills_CheckDto1.CheckCode=CJ.GenerateBillsNo();//标识
bills_CheckDto1.CreateTime = DateTime.Now;
bills_CheckDto1.LastTime = DateTime.Now;
bills_CheckDto1.UserID = HttpContext.Current.User.Identity.Name;
bills_CheckDto1.SID = manage_LedgerDto1.StoreID;
bills_CheckDto1.State = 0;
bills_CheckDto1.Type = 1;//抽检
Bills_SpotCheckChildService.Add(bills_SpotCheckChildDto1);
BillsCheckService.Add(bills_CheckDto1);
}
Bills_SpotCheckChildDto bills_SpotCheckChildDto2 = new Bills_SpotCheckChildDto();
Bills_CheckDto bills_CheckDto2 = new Bills_CheckDto();
foreach (Manage_LedgerDto manage_LedgerDto2 in query2)
{
bills_SpotCheckChildDto2.LocationID = manage_LedgerDto2.LocationID;
bills_SpotCheckChildDto2.State = 0;//不是是关键设备
bills_SpotCheckChildDto2.CheckBillsCode = bills_CheckDto2.CheckCode = CJ.GenerateBillsNo();//标识
bills_CheckDto2.CreateTime = DateTime.Now;
bills_CheckDto2.UserID = HttpContext.Current.User.Identity.Name;
bills_CheckDto2.SID = manage_LedgerDto2.StoreID;
bills_CheckDto2.State = 0;
bills_CheckDto2.Type = 1;//抽检
Bills_SpotCheckChildService.Add(bills_SpotCheckChildDto2);
BillsCheckService.Add(bills_CheckDto2);
}
var query = db.Database.SqlQuery<Manage_LedgerDto>("select * from Bills_Check where Type=1").ToList();
var query_count = query.Count();
var query_list = query.Skip(queryBase.Start).Take(queryBase.Length).ToList();
var dto = new ResultDto<Manage_LedgerDto>
{
recordsTotal = query_count,
data = query_list
};
return dto;
}
}

浙公网安备 33010602011771号