Я пытаюсь вставить экземпляр класса "ClassName" в базу данных с помощью библиотеки Dapper.Contrib.Extensions, я использую Activator.CreateInstance метод .NET Framework 4.6.1, потому что У меня просто есть Имя класса в текстовом виде, поэтому я не могу создать экземпляр объекта, вызывающего непосредственно класс.
Приведение класса ClassName работает как положено connTo.Insert ((ClassName) instance); но я не могу использовать этот способ, потому что "ClassName" - это просто текст, который я получаю из файла XML.
private void InsertByDapper(string className, SqlConnection conn)
{
Type type = Type.GetType(className);
if (type != null)
{
var instance = Activator.CreateInstance(type);
// ... update some properties in the instance object...
conn.Insert(instance);
//connTo.Insert((ClassName)instance); //This statment works
}
}
Исключение, создаваемое в .NET: System.Data.SqlClient.SqlException: 'Неверный синтаксис рядом с') '.'
Объяснение ошибки: Даппер пытается вставить объект в таблицу объектов. Моя цель - вставить его в таблицу className.
Ошибка SQL: вставить в Objects () значения (), выбрать SCOPE_IDENTITY () id