C# Dapper связь «один ко многим» с использованием универсального подходаC#

Место общения программистов C#
Anonymous
C# Dapper связь «один ко многим» с использованием универсального подхода

Сообщение Anonymous »

У меня есть две такие модели

Код: Выделить всё

public class Teacher
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }

public List Classes { get; set; } = new();
}

public class Class
{
public int Id { get; set;}
public int NumOfStudents { get; set;}
}
У меня также есть хранимая процедура для выбора всех записей.
Моя проблема в том, как использовать dapper с дженериками. В общем случае я использую этот общий метод

Код: Выделить всё

public List LoadData(string storedProcedure, U parameters, string connectionStringName)
{
var connectionString = GetConnectionString(connectionStringName);

using (IDbConnection connection = new SqlConnection(connectionString))
{
var list = connection.Query(storedProcedure, parameters,
commandType: CommandType.StoredProcedure).ToList();

return list;
}
}
Теперь из-за связи «один ко многим» я пытаюсь использовать этот общий метод, но безуспешно

Код: Выделить всё

public List LoadMultipleData(string storedProcedure, T parentModel, L childModel, U parameters, string connectionStringName)
{
var connectionString = GetConnectionString(connectionStringName);

using (IDbConnection connection = new SqlConnection(connectionString))
{
var list= connection.Query(storedProcedure,
(parent, child) =>
{
parent.parentModel = child;
return parent;
},
parameters,
commandType: CommandType.StoredProcedure).ToList();

return list;
}
}
Как это правильно сделать?

Подробнее здесь: https://stackoverflow.com/questions/649 ... s-approach

Вернуться в «C#»