Боюсь, я могу неправильно понимать мульти-картографию в Dapper.
С учетом следующего:
public class Job
{
public int JobId { get; set; }
public Site FromSite { get; set; }
public Site ToSite { get; set; }
}
public class Site
{
public int SiteId { get; set; }
public string CompanyName { get; set; }
public Address Address { get; set; }
}
public class Address
{
public string Address1 { get; set; }
public string Postcode { get; set; }
}
Каждое задание будет иметь 2 экземпляра Site
, каждый из которых будет иметь экземпляр Address
Этосглажено, и я пытаюсь отобразить это, как показано ниже:
string sql = @"
select
JOBIdNumber JobId,
fr.SUPKey SiteId,
fr.SUPCompanyName CompanyName,
fr.SUPAddress1 Address1,
fr.SUPPostCode Postcode,
t.SUPKey SiteId,
t.SUPCompanyName CompanyName,
t.SUPAddress1 Address1,
t.SUPPostCode PostCode
FROM tb_JobJob inner Join tb_SUPSupplier fr on JOBFromSiteId = fr.SupKey
inner join tb_SUPSupplier t on t.SUpkey = jobTositeId
where jobidnumber = @JobId
";
var jb = cn.Query<Job, Site, Address, Site, Address, Job>(sql,
(job, fromSite, fromSiteAddress, toSite, toSiteAddress) =>
{
job.FromSite = fromSite;
job.FromSite.Address = fromSiteAddress;
job.ToSite = toSite;
job.ToSite.Address = toSiteAddress;
return job;
},
splitOn: "SiteId,Address1",
param: new { JobId = jobId });
Что приводит к:
При использовании API многократного отображения убедитесь, что вы установили параметр splitOn, если у вас естьключи, кроме Id
Я не уверен, неправильно ли я понимаю процесс, и если да, то как мне это отобразить, похоже, что это должно быть что-то, с чем сталкивались другие.