下面是写的一条LINQ查询,查询出来的数据都是重复第一条的数据,把LINQ TO SQL 拿到查询分析器里面,数据查询又没错
public List<wygl_charge_ChargeAccountingMaster> GetChargeDataItemsPage(string precinctId, int chargeYear, int chargeMonth, PageInfo info) { int pageindex = (info.CurrenetPageIndex < 1) ? 1 : info.CurrenetPageIndex; int pageSize = (info.PageSize <= 0) ? 20 : info.PageSize; int excludedRows = (pageindex - 1) * pageSize; var q = from a in context.wygl_charge_ChargeAccountingMaster where a.PrecinctID.Equals(precinctId) && a.ChargeYear == chargeYear && a.ChargeMonth == chargeMonth orderby a.PrecinctID, a.BuildingID, a.FloorID, a.RoomID descending select a; info.RecordCount = q.Count(); //IQueryable<wygl_charge_ChargeAccountingMaster> query = q.Skip<wygl_charge_ChargeAccountingMaster>(excludedRows).Take<wygl_charge_ChargeAccountingMaster>(pageSize); var result = q.ToList<wygl_charge_ChargeAccountingMaster>(); return result; }
里面注释的地方本来是要分页查询的,但是查询出来的数据一样,以为是分页出了问题,所以就直接查询了全部数据,结果也是一样。
求解决思路
问题解决了,我现在算是明白了,EF的数据库里一定要有一个唯一的ID 或者KEY,联合主键 是不行的
本次使用的联合主键了出现了很多问题,比如查询、数据更新、数据验证都出错,统一的在数据库一个ID后,解决所有问题
类里面[key]
加了么
wygl_charge_ChargeAccountingMaster 实体键设置有问题,在model视图找到对应的映射类右键字段设置