У меня есть одна таблица, но я бы хотел отобразить ее как композицию между двумя классами.Состав Dapper.NET, используя ту же таблицу
Предположим, у меня есть таблица Customer со следующими полями: Id, Name, ExtraDataValue, ExtraDataDate.
class Customer
{
public int Id {get;set;}
public string Name {get;set;}
public ExtraData Extra {get;set;}
}
class ExtraData
{
public int Value {get;set;}
public DateTime Date {get;set;}
}
Каков наилучший способ запроса и заполнения ExtraData внутри объекта Customer?
Edit:
Я простираться вопрос к более сложному сценарию, так как ответ XenoPuTtSs в решает первый, но не будет работать с этим.
Предположим теперь, что у меня есть соединение, чтобы обратиться к таблице. Опция splitOn разделит результат на создание ExtraData, но не будет разделена на создание адреса.
Я вижу другую проблему, используя splitOn. Мы не можем использовать Select * безопасно, потому что, если мы изменяем таблицу с большим количеством полей, мы должны всегда помнить, чтобы перемещать поля сплита вниз. Или мы всегда будем описывать все поля в безопасном порядке в команде Select.
Я согласен с тем, что вы говорите о «Select *», но, как правило, это плохая практика в любом месте по тем же причинам. splitOn используется, потому что ключ по умолчанию не является «Id» – XenoPuTtSs
Но в этом случае мне действительно нужны все поля, поэтому Select * is perfect. Теперь я понимаю использование splitOn, но в этом случае проблема. Я хочу разбить имя поля (для ExtraData) и для ключа (для адресной таблицы). Может быть, если он примет список вариантов разделения, было бы лучше. Что-то вроде splitOn: new {"Id", "ExtraDataValue"} –
splitOn: "Value1, ID, SomethingElse, Chickens" – XenoPuTtSs