2010-12-30 11 views
0

私はネット全体を見てきましたが、まともな解決策を見つけることができません。私はエンティティフレームワークに関するnoobです。私は本当に好きなものと一緒に仕事をすることができました。過去のプロジェクトでは、私は後でこのように使用できるオブジェクトの辞書を引くことができました:EntityObjectsのリストを反映させるにはどうすればよいですか?

Dictionary<string, MyBaseType> myTypes = new Dictionary<string, MyBaseType>(); 
var types = Assembly.GetExecutingAssembly().GetTypes() 
              .Where(t => t.BaseType != null && t.BaseType.Name.Equals("MyBaseType")).ToArray(); 
object ct; 
foreach (Type c in types) 
{ 
    ct = Activator.CreateInstance(c); 
    myTypes.Add(ct.GetType().Name, ct as MyBaseType); 
} 

var myob = myTypes["SomeName"]; 
myob.DoFoo(); // this is a method of my basetype class or my interface 

私はMVCのw/EF4プロジェクトのために似た何かをする必要があります。私は基本型としてEntityObjectを使用しようとしましたが、何らかの理由でExecuting Assemblyはそれらを反映しません。

アイデア?あなたがチェックする必要が

答えて

0

  1. をごEFオブジェクトの基本クラスである何 - 鉱山は例えばSystem.Objectから直接派生します。
  2. 正しいアセンブリでそれらを探しています - サンプルのコードを実行するアセンブリで宣言されていますか?
+0

私は特別なものを使用していません。私のメインプロジェクトのEDMXだけ。各エンティティがEntityObjectの基本型であることがわかります。私はそこから反射して進めることができると思ったが、私が言ったように、ExecutingAssemblyはそれらの型を認識しない。メインプロジェクトEDMXで生成されたタイプが実行アセンブリにない場合、それらはどこにありますか? – HapiDjus

+0

質問は 'あなたの実行アセンブリは何ですか? 2を見てください。サンプルコードはどこで宣言されていますか?あなたのEDMXと同じアセンブリですか?また、あなたのEFオブジェクトの可視性は何ですか?それらは公開されていますか? –

関連する問題