SQL查询:
SELECT 0 AS Id,
u.UserID AS UserId,
u.first_name AS FirstName,
u.last_name AS LastName,
uf.uf_facility_id AS FacilityId
FROM ...
实体,无需其他映射,只需在DbContext中定义属性-公共DbSet<UserFacility> UserFacilities { get; set; }
:
public class UserFacility
{
public int Id { get; set; }
public int UserId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int FacilityId { get; set; }
}
DbContext.Set()。SqlQuery
返回UserFacility
的列表,其中每个项目重复UserId
,并且等于第一行的UserId
值,例如:
Id UserId FirstName LastName FacilityId
0 33057 ggtest 2 3938
0 33057 QaAuOne TestOne 3938
0 33057 QaAuOne TestOne 3928
DbContext.Database.SqlQuery
返回预期结果(与在SSMS中运行此查询时得到的结果相同)。
Id UserId FirstName LastName FacilityId
0 33057 ggtest 2 3938
0 33098 QaAuOne TestOne 3938
0 33098 QaAuOne TestOne 3928
有人可以解释一下到底发生了什么,如何使DbContext.Set<T>().SqlQuery
返回正确的数据吗?我正在使用EntityFramework 6.2.0。
谢谢。