#c# #dapper
#c# #щеголеватый
Вопрос:
Я хочу привести динамический результат в dto, имя которого известно только во время выполнения. Например.
public class Dog { public int? Age { get; set; } public Guid Id { get; set; } public string Name { get; set; } public float? Weight { get; set; } } string dtoName = "Dog"
Поэтому вместо того, чтобы, например, делать :
var dog = connection.Querylt;Doggt;("select Age = @Age, Id = @Id", new { Age = (int?)null, Id = guid });
Я хочу использовать
var dog = connection.Querylt;dtoNamegt;("select * from " dtoName);
Обратите внимание, что это очень поверхностный пример для демонстрации идеи. Я не хочу использовать отражение и т. Д., Но просто хочу получить ссылку на Dog по имени строки для передачи.
Комментарии:
1. Вы не можете этого сделать, потому
dog
что во время компиляции должен быть известен тип. Обычно, когда люди просят об этом, они еще не совсем продумали, как предполагается использовать результат-как вы предлагаете объявить результат и как потребляющий код будет знать о типе? Вы можете динамически вызывать универсальные методы (.MakeGenericMethod
), но сам результат будет использоваться только динамически.2. Даже если бы вы могли это сделать, как вы собираетесь использовать результат?
3. По сути, я хочу отобразить результаты динамического sql в dto, имя которого известно во время выполнения запроса.
4. Я хочу использовать его динамически
5. Определите » динамически »