我正在使用 .Net 连接器 6.3.6 开发 MySQL,并在 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 类。但是当我在 EntityObject 上使用 Covert.ChangeType() 时,我收到异常说“对象必须实现 IConvertible”。如何克服这个问题?编辑:仅供参考,我的主要目的是编写一个尽可能通用的方法,这样就不需要转换为特定的表类型。
谢谢,警报器