Я работаю над MySQL, используя .Net Connector 6.3.6 и создал модели Entity на VS 2010. Я планирую написать универсальный метод, который бы добавил EntityObject в соответствующую таблицу. Вот как это выглядит:
public void AddToTable(ObjectContext dataContext, string tableName, EntityObject tableObj)
{
try
{
Type type = dataContext.GetType();
string methodName = "AddTo" + tableName;
MethodInfo methodInfo = type.GetMethod(methodName);
PropertyInfo propInfo = dataContext.GetType().GetProperty(tableName);
Object[] parameters = new Object[] { Convert.ChangeType(tableObj, propInfo.PropertyType) };
methodInfo.Invoke(dataContext, parameters);
}
catch (Exception e)
{
edit://gonna handle it appropriately here!
}
}
ObjectContext будет фактическим классом ObjectContext.
Но я получаю исключение, говоря, что «объект должен реализовывать IConvertible», когда я использую Covert.ChangeType () для EntityObject.
Как преодолеть эту проблему?
Редактировать: К вашему сведению, мое главное намерение - сделать так, чтобы метод был как можно более универсальным, чтобы не требовалось приведение к определенному типу таблицы.
Спасибо,
Оповещатель