Convert.ChangeType() для EntityObject

Я работаю над 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. Как преодолеть эту проблему? Редактировать: К вашему сведению, мое основное намерение - сделать так, чтобы метод был как можно более универсальным, чтобы не требовалось приведение к конкретному типу таблицы.

Спасибо, оповещатель

2 ответа

Решение

Следовал следующему обобщенному шаблону хранилища: [ссылка]http://www.codeproject.com/Articles/37155/Implementing-Repository-Pattern-With-Entity-Framew[ссылка] Это очень интуитивно понятно и соответствует моему требованию:)

Вы изобретаете колесо.

 public void AddToTable<TEntity>(ObjectContext dataContext, TEntity tableObj)
 {
     dataContext.CreateObjectSet<TEntity>().AddObject(tableObj);
 }

И, пожалуйста, не ешьте исключения.

Другие вопросы по тегам