1

EF4.0 でデータベース ファーストのアプローチで作成されたエンティティ モデルがあります。

接続設定が別の構成メディアに保存されているため、app.config ファイルなしでモデルを使用できるようにしたいと考えています。これにより、有効な EF 接続文字列を渡して、ObjectContext クラスを直接操作する必要があります。ObjectContext をインスタンス化する方法は次のとおりです。

var ctx = new ObjectContext(entityConnectionString);

これは正しく実行され、ctx.ExecuteStoreCommand() を使用してデータベースに対して SQL コマンドを正常に実行できます。

生成されたモデルの名前は MyEntities です。これは、MyEntities.Designer.cs で確認できるように、ObjectContext から派生しています。

public partial class MyEntities : ObjectContext

ただし、ctx を MyEntities オブジェクトにキャストしようとすると、次のようになります。

MyEntities myEntities = (MyEntities)ctx;

というエラーが表示されます

'ctx' ('System.Data.Objects.ObjectContext' の実際の型を持つ) を 'MyNamespace.MyEntities' にキャストできません

MyEntities のインスタンスであるかのように ctx を使用できるようにしたいと考えています。これにより、EF で生成されたエンティティ (ctx.entity1、ctx.entity2) にアクセスできるようになります。これを行う別の方法はありますか?

4

1 に答える 1