我有一个名为WebsiteForm的类,其中包含一个属性List<Survey>
。
我还有一个存储过程,它返回一个WebsiteForm数据记录集(减去调查)和一组记录调查数据。这些临时存储在名为formList和surveyList的列表中。
我希望能够将来自surveyList的相关调查放入每个formList对象的调查列表中,如果这有意义的话。相关的是WebsiteForm的ID属性与Survey的LinkID属性匹配。
我想这可以用LINQ完成,但由于数据的结构,我正在努力。
感谢。
public class WebsiteForm
{
public int ID { get; set; }
...
public List<Survey> Surveys { get; set; }
}
public class Survey
{
public int LinkID { get; set; }
...
}
public class CRMService
{
...
public List<WebsiteForm> GetData(string storedProcedure)
{
List<WebsiteForm> formList;
List<Survey> surveyList;
using (IDbConnection sqlConnection = new SqlConnection(ConnectionString))
{
sqlConnection.Open();
try
{
using (var data = sqlConnection.QueryMultiple(storedProcedure, commandType: CommandType.StoredProcedure))
{
formList = data.Read<WebsiteForm>().ToList();
surveyList = data.Read<Survey>().ToList();
// Add surveys from surveyList to each formList item where the LinkID of surveyList matches the ID of formList
}
}
finally
{
sqlConnection.Close();
}
}
return formList;
}
}
我正在使用Dapper将SQL数据映射到btw类。
答案 0 :(得分:0)
你可以尝试这样的事情
....
formList = data.Read<WebsiteForm>().ToList();
surveyList = data.Read<Survey>().ToList();
formList.ForEach(fl=>fl.Surveys = surveyList.Where(sl=>sl.LinkID == fl.ID).ToList());
....