2011-11-15 3 views
1

私はEFの新人です。私は間違っていることを解決できません。私は既存のデータベースのモデルを作成するためにEF 4.1の「データベースを最初に」使用しました(変更できません)。データベースに必要なテーブルはすべて、特定のスキーマ内にあります。このスキーマでは、「my_schema」と呼びます。 edmxデザイナーファイルの主なプロパティでは、データベーススキーマ名を "my_schema"に設定しています。 edmxファイルの生のXMLを調べると、正しいスキーママッピングがあるようです。EF 4.1生成されたSQLで間違ったスキーマを使用しています

<EntitySet Name="Events" EntityType="MyModel.Store.Events" store:Type="Tables" Schema="my_schema" /> 

私はDbContextクラスに設定されたイベントのエンティティにアクセスする際に生成されたSQLがまだあるしかし:

SELECT .... 
FROM dbo.Events 

私はそれが何の違いを行う場合わからないが、私はADO.net DBContextGeneratorを使用しています私のクラスを生成する。

誰かが私が間違っていることを知っていますか?

+0

私は特定のアドバイスを提供することはできませんが、ファイルの検索でモデルソースコードの文字列 '' dbo "'を検索しましたか?それが正しい方向にあなたを導くかもしれない。 –

+0

私はpocosと慣例に基づいたマッピングを使用しています。そのため、実際に生成されたエンティティクラスとコンテキストクラスのC#ソースコードには、データベースには何も含まれていません。 edmxファイルのxmlソースにはdboへの参照はありません。 –

答えて

1

私はこれを今騒ぎました。そして、それはEFがどのように働くかについての私の無知にまで留まります。私はDbContextを通常のADO.net接続文字列に渡していました。これはコードを最初のモードに変換するようです。そのため、私のedmxモデルの設定や設定は無視され、モデルクラスの属性を探していました。モデルメタデータファイルへの参照を含むEF文字列を使用するように変更するとすぐに動作します。私はそれが魔法のようにモデルメタデータを知っていると予想していたのかどうか分かりません。

+0

何かの仕組みがわからないときは、いつも魔法のように思えます。 –

関連する問題