.Net Connector 6.3.6を使用してMySQLに取り組んでおり、VS2010でエンティティモデルを作成しました。対応するテーブルに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を実装する必要があります」という例外が発生します。この問題を克服する方法は?編集:参考までに、私の主な目的は、特定のテーブルタイプへのキャストが不要になるように、可能な限り一般的なメソッドを作成することです。
ありがとう、アラート担当者