首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EntityObject上的Convert.ChangeType()

EntityObject上的Convert.ChangeType()
EN

Stack Overflow用户
提问于 2011-03-02 18:16:39
回答 2查看 620关注 0票数 2

我使用.Net连接器6.3.6在MySQL上工作,并在VS2010上创建了实体模型。我计划编写一个泛型方法,将一个EntityObject添加到相应的表中。下面是它的外观:

代码语言:javascript
复制
    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类。但是当我在一个EntityObject上使用Covert.ChangeType()时,我得到的异常提示是"object必须实现IConvertible“。如何克服这个问题?Edit:仅供参考,我的主要意图是写一个尽可能泛型的方法,这样就不需要转换为特定的表类型。

谢谢,警报器

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-13 23:02:41

遵循以下通用存储库模式:链接http://www.codeproject.com/Articles/37155/Implementing-Repository-Pattern-With-Entity-Framew[link]它非常直观,并且符合我的要求:)

票数 0
EN

Stack Overflow用户

发布于 2011-03-02 22:41:39

你在重新发明轮子。

代码语言:javascript
复制
 public void AddToTable<TEntity>(ObjectContext dataContext, TEntity tableObj)
 {
     dataContext.CreateObjectSet<TEntity>().AddObject(tableObj);
 }

请不要吃异常。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5166005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档