* Можете ли вы объяснить Разделить на функцию в Multimap *Много картирование в Dapper. Получив сообщение об ошибке в SpiltOn
Я пытаюсь получить данные из базы данных, используя Dapper ОРМ. Я получил следующую ошибку System.ArgumentException: При использовании API-интерфейсов многоканальных отображений убедитесь, что вы установите splitOn параметры, если у вас есть другой, чем Id имя параметров ключ: splitOn
public abstract class Domain
{
public Guid Id { get; set; }
}
public abstract class ItemBase : Domain
{
private IList<Image> images = new List<Image>();
public Guid? ParentId { get; set; }
public string Name { get; set; }
public IList<Image> Images { get { return images; } }
}
public class Meal : ItemBase
{
}
public class Item : ItemBase
{
private IList<Meal> meals = new List<Meal>();
public IList<Meal> Meals { get { return meals; } };
}
public class Image : Domain
{
public byte Img { get; set; }
public string Description { get; set; }
}
public class MealImageLink : Domain
{
public Guid ItemId { get; set; }
public Guid ImageId { get; set; }
}
/* поиск функция взять Даты из таблицы */
private List<Meal> SearchMeals(Guid id)
{
var query = @"SELECT meal.[Name],meal.[Description],meal.
[Price],mealImage.[Image] as Img
FROM [MealItems] as meal
LEFT JOIN [MealImageLink] mealImageLink
on meal.Id= mealImageLink.MealItemId
LEFT JOIN [Images] mealImage on
mealImageLink.ImageId=mealImage.Id
WHERE meal.[ParentId][email protected]";
List<Meal> meals = (_connection.Query<Meal, MealImageLink, Image, Meal>
(query, (meal, mealLink, mealImage) =>
{
meal.Images.Add(mealImage);
return meal;
}, new { @Id = id })).ToList();
return meals;
}
Можете ли вы объяснить подробно о динамических API ниже код * ** 'var meal = new Список(); foreach (var row in _connection.Query (sql, new {@Id = id})) { string name = row.Name, description = row.Description; десятичная цена = ряд.Цена; // etc Еда еды = // TODO: построить новый объект еды от этих кусков еды.Add (еда); } '*** –
chaaru
В соответствии с пониманием функции расщепления у меня был код как ***' Список food = (_connection.Query (запрос, (еда, едаLink, едаImage) => { meal.Images.Add (foodImage); return meal; }, новый {@Id = id}, splitOn: "Name")). ToList(); '** *, Я получаю ту же ошибку –
chaaru
«Я переделал код как ...» - действительно; вы говорите ему, чтобы разделить горизонтальные разделы на столбец под названием «Имя». Единственный столбец с именем 'Name' происходит * в первом столбце *. Не было бы никакого способа получить какие-либо данные для каких-либо других разделов ... так ... сообщение правильно идентифицирует, что что-то очень не так. –