Entity Frameworkでは、明示的な変換によって整数をエンティティに変換するカスタムコンバータメソッドを作成できますか?整数から実体への明示的な変換?
私はこれに関するいくつかの研究を行いましたが、どこから始めたらよいかわかりません。
ここに私がしようとしているものの例があります。
int activeTeacherId = 38;
Teacher activeTeacher = (Teacher)activeTeacherId;
編集1いくつかの簡単な調査の後、私は本当に汎用的かつ柔軟であるためにすべてを必要とする場合、私はおそらくEntityObjectで何かをする必要があることを考え出しました。しかし、私はどのようにわからない。
編集2自分の経験から、次のコードを作成することができました。しかし、明らかな理由から、私は静的コンテキストの中で "this"を得ることはできません。
変換されるオブジェクトの型を何らかの形で取得できれば(常にEntityObjectに変換されるわけではないので、PersonまたはTeacherに変換されることがあるため)、理論的には動作します。
public class EntityObject : System.Data.Objects.DataClasses.EntityObject
{
public static explicit operator EntityObject(int id)
{
var container = ModelContainer.Instance;
var thisType = this.GetType(); //this can't be done from a static context, so how do we retrieve the type that we are converting into?
var containerType = typeof (ModelContainer);
dynamic setProperty = typeof (ModelContainer).GetProperty(thisType.Name + "Set");
ObjectSet<dynamic> set = setProperty.GetValue(container);
return set.FirstOrDefault(o => o.Id == id);
}
}
CoreFirstまたはModelFirstに対してやっていますか? –
モデルファーストデザイン:) –
これはちょうどナビゲーションプロパティですか? –