私は、Entity Frameworkの使用のために一連の関数をまとめようとしています。私はジェネリッククラスをすべて1つのルーチンに渡したいと思っています。それから、ルーチンがそれを "タイプ"してそれに応じて行動するようにします。私はClassクラスとそれをPropertyTypeと結婚させる方法を理解できないようです。不明なクラスにプロパティを動的にキャストし、C#Entity Frameworkでそのプロパティをチェックする方法は?
public void AddUpdate(string classType, Object o)
{
//This gets the Type of my Class Object ok.
Type mType = Type.GetType(GetType().Namespace + "." + classType, true);
var meContext = new ClsContext(_ConnectionString);
//This retrieves the correct primary key for my the Class Object.
string key = FncGetPrimaryKey(meContext, classType + "s");
//I've tried this as a PropertyInfo as well instead of a Var
var keyID = o.GetType().GetProperty(key);
//I've tried this as Var as well as Dynamic
dynamic obj = o;
//Now I'm stuck, because I want to evaluate the property,
//but I get an error "<MyClass> does not contain a reference for 'keyID'
if (obj.keyID == 0) //ERROR ON THIS LINE
{
meContext.Entry(o).State = EntityState.Added;
}
else
{
meContext.Entry(o).State = EntityState.Modified;
}
meContext.SaveChanges();
}
感謝します。それはスマートな答えですが、実際にコードにプラグインする方法を理解することはできませんでした。私はあなたに+1を与え、応答を感謝します。 –