我有一个包含其他对象的对象和一个对象列表。在 dapper 中,我能够查询返回 4 个结果集的每个表。我需要将每个结果映射到它们在 C# 中的父类对象。
这是小巧的代码
var sqlStatement = @"
Select * from SituationalAssessment;
Select * from CompanyInformation;
Select * from LocationInformation;
Select * from JobInformation;"
using (var conn = new SqlConnection(_connectionString))
{
await conn.OpenAsync();
var multi = await conn.QueryMultipleAsync(sqlStatemment);
model = multi.Read<AssessmentModel>().ToList();
var companyInfo = multi.Read<CompanyInformationModel>().ToList();
var locationInfo = multi.Read<LocationInformationModel>().ToList();
var jobInfo = multi.Read<JobInformationModel>().ToList();
}
这里是父类
public class AssessmentModel
{
public Guid AssessmentId { get; set; }
public string? applicationNumber { get; set; }
public ApplicationStatus? applicationStatus { get; set; }
public DateTime? dateCreated { get; set; }
public DateTime modifiedDateCreated { get; set; }
public CompanyInformationModel? companyInformationModel { get; set; }
public List<LocationInformationModel>? locationInformationModels { get; set; }
public JobInformationModel? jobInformationModel { get; set; }
}
public class CompanyInformationModel
{
public Guid CompanyInformationId { get; set; }
public string? companyName { get; set; }
public string? contactName { get; set; }
public string? primaryPhone { get; set; }
public string? secondaryPhone { get; set; }
public string? email { get; set; }
public string? hourlyRate { get; set; }
}
public class LocationInformationModel
{
public Guid LocationInformationId { get; set; }
public string? address1 { get; set; }
public string? address2 { get; set; }
public string? city { get; set; }
public string? state { get; set; }
public string? zip { get; set; }
}
public class JobInformationModel
{
public Guid JobInformationId { get; set; }
public string? jobTitle { get; set; }
public string? jobDescription { get; set; }
}
结果集返回每个表中所有内容的列表,它们都与这些 Id 相关
Select * from SituationalAssessment s
join CompanyInformation c on c.CompanyInformationId = s.AssessmentId
join LocationInformation l on l.LocationInformationId = s.AssessmentId
join JobInformation j on j.JobInformationId = s.AssessmentId
我曾尝试使用 Dapper“SplitOn”,但由于 LocationInformationModel 返回了一个列表。它没有按预期工作