Мы надеемся перейти к использованию Dapper, чтобы обеспечить сопоставление объектных отношений с нашими бизнес-моделями.Использование Dapper для привязки с сильно типизированной моделью с дополнительными динамическими свойствами
Наряду с этими моделями данных, мы часто сталкиваемся с пользовательскими полей (не известно во время выполнения), которые создаются пользователями и появляются как часть возвращаемого набора результатов:
Id
Title
c_MyCustomField1
c_MyCustomField2
В настоящее время все эти поля возвращаются и обрабатывается с помощью считывателя. Нам нравится перемещать все это до Dapper, но изо всех сил пытается понять, как смешивать сильно типизированный объект, смешанный с динамическими настраиваемыми полями.
Мы видим, наши варианты, как это:
- Получить каждый результат от щеголеватого, как динамичные и сделать наши собственные привязки.
- Получить Dapper для привязки к строго типизированной модели и сделать отдельный вызов для добавления настраиваемых полей.
- Расширьте Dapper, чтобы попасть в середину, добавьте наш конкретный случай пользователя, чтобы связать как известные, так и динамические поля.
кажется контрпродуктивным, и мы, возможно, принять удар производительности, который почему Вы бы ввести щеголеватый в первую очередь. мы действительно не можем сделать, так как это потребует значительных изменений для поставщика данных. Я знаю, что я не принадлежу источнику Даппера.
Я думаю, что Святой Грааль будет в конечном итоге с моделью, как это:
class Model
{
int Id {get; set;}
string Title {get; set;}
IList<CustomField> CustomFields {get; set;}
}
class CustomField : dynamic
{
string Name {get; set;}
object Value {get; set;}
}
Есть ли способ, это может быть сделано с помощью щеголеватый?
Как всегда, любые предложения были высоко оценены.
Как ни странно, «чистое» было прилагательным, которое пришло в голову при обсуждении этого. Ваше предложение определенно похоже, что это должно быть так, как мы голова, если мы решим совершить прыжок. Спасибо за ваше время. –
У нас есть лучший способ привязать сейчас в последней версии Dapper? –
@CoderAbsolute не в настоящее время, нет –