3

私はEFに不慣れで、自分が間違っていることを理解できません。EF 4.1の「データベースファースト」を使用して、既存のデータベースのモデルを作成しました(変更できません)。データベースに必要なすべてのテーブルは、この質問では「my_schema」と呼ぶ特定のスキーマにあります。edmxデザイナーファイルのメインプロパティで、データベーススキーマ名を「my_schema」に設定しました。edmxファイルの生のXMLを調べると、正しいスキーママッピングがあるようです

例えば

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

ただし、DbContextクラスに設定されたEventsエンティティにアクセスしたときに生成されるSQLはまだ次のとおりです。

SELECT ....
FROM dbo.Events

違いがあるかどうかはわかりませんが、ADO.netDBContextGeneratorを使用してクラスを生成しています。

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

4

1 に答える 1

1

OK私は今これを議論しました、そしてそれはEFがどのように機能するかについての私の無知に要約されます。DbContextに通常のADO.net接続文字列を渡しており、コードファーストモードに切り替えているようです。そのため、edmxモデルの設定と構成は無視され、モデルクラスの属性を探していました。モデルメタデータファイルへの参照を含むEF文字列を使用するように変更するとすぐに機能します。今では明らかなようですが、モデルのメタデータについて魔法のように知っていると私がどのように期待していたのかわかりません。

于 2011-11-17T15:22:40.137 に答える