В последнее время я проделал довольно большую работу, связанную с принятием вызовов хранимых процедур и отображением их в частные классы DTO. Я думал, что на днях должен быть более легкий путь. Пока это то, что я придумал:
- CodeSmith - ОК, но я не пойду туда, где я работаю. Бюджет сейчас довольно узкий.
- Типизированный набор данных - добавление столбцов в набор данных во время выполнения. Хотя это удобно, мне все еще не нравится. Я никогда не был поклонником накладных расходов для набора данных.
- IronRuby / IronPython - возможно, прочитайте возврат из хранимой процедуры во время выполнения и динамически создайте объект в IronRuby или Python и верните объект в VB.Net. Я недостаточно исследовал динамические языки в .net, чтобы понять, насколько удачным будет это решение. Я думаю, что c # немного лучше поддерживает динамическое ключевое слово, но знаю, что оно не идеально. Там, где я работаю, мы должны использовать VB.Net, и, возможно, это усугубит ситуацию
- Динамически создавать объекты во время выполнения с Reflection.Emit - кажется, действительно очень грязный.
Есть ли лучшее решение, о котором я не знаю? Может быть, какой-нибудь проект с открытым исходным кодом? Я посмотрел в Automapper, но я считаю, что это просто для отображения DTO <-> BusinessObjects. Не совсем то, что мне нужно сделать. Надеюсь, в будущем мы сможем довольно легко переключаться между динамическими / статическими языками, что сделает такие проблемы простыми