5

VS 2010 ソリューションには、Data と DataForm の 2 つのプロジェクトがあります。私のデータ プロジェクトには、同じデータ モデル (DataPoco と DataDb など) のコード ファースト バージョンとデータベース ファースト バージョンの両方があります。これらのクラスのエンティティ名はまったく同じです。これらの 2 つのバージョンは、それぞれ独自の名前空間にあります。DataDb は Data にあり、DataPoco は Data.Poco にあります。

私の DataForm プロジェクトには、次のコードがあります。

DataPoco context = new DataPoco(); //Data.Poco.DataPoco
foreach(var u in context.Urls)     //Data.Poco.Url
{
    //do stuff with u.
}

context.Urlsが列挙されている (および遅延読み込みのために読み込まれている) と、次のエラーが発生します。

'Data.Url' の概念モデル タイプが見つかりませんでした。

OTHERバージョンのエンティティに関するエラーが発生するのはなぜですか(たとえば、Data.Poco.Url を列挙しているときに Data.Url に関するエラーを取得するにはどうすればよいですか)? 別の名前空間にあるが同じプロジェクトにあるデータベースの最初のエンティティクラスを取得するコードファーストについて何かありますか? これは Code First のバグですか、それとも私のせいですか?

4

1 に答える 1

3

Entity Framework は名前の一部として名前空間を使用しません。エンティティ名自体は一意である必要があります。

于 2010-12-27T17:13:11.680 に答える