现象:在开发过程中,发现视图数据在数据库中查询是没问题的,但是用EF的实体集合来查询就会出现:记录总数正确,但是其中一些实体的值和其他实体一样。
原因:EF填充实体时是根据主键来的,如果EF视图模型推断的主键中有相同值,那么填充实体时只会用与主键匹配的第一条记录来填充所有相同主键的实体。
解决:给视图添加一个主键列。
主键列:
ISNULL(ROW_NUMBER() OVER(ORDER BY 数据列名),0) V_ID
现象:在开发过程中,发现视图数据在数据库中查询是没问题的,但是用EF的实体集合来查询就会出现:记录总数正确,但是其中一些实体的值和其他实体一样。
原因:EF填充实体时是根据主键来的,如果EF视图模型推断的主键中有相同值,那么填充实体时只会用与主键匹配的第一条记录来填充所有相同主键的实体。
解决:给视图添加一个主键列。
主键列:
ISNULL(ROW_NUMBER() OVER(ORDER BY 数据列名),0) V_ID