0

Entity Framework 4.3 にアップグレードしたところ、次のエラーが発生しました。

   [NullReferenceException: Object reference not set to an instance of an object.]
   System.Data.Entity.ModelConfiguration.Configuration.Properties.Navigation.NavigationPropertyConfiguration.ValidateConsistency(NavigationPropertyConfiguration navigationPropertyConfiguration) +588
   System.Data.Entity.ModelConfiguration.Configuration.Properties.Navigation.NavigationPropertyConfiguration.Configure(EdmNavigationProperty navigationProperty, EdmModel model, EntityTypeConfiguration entityTypeConfiguration) +122
   System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration.ConfigureAssociations(EdmEntityType entityType, EdmModel model) +160
   System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration.Configure(EdmEntityType entityType, EdmModel model) +102
   System.Data.Entity.ModelConfiguration.Configuration.ModelConfiguration.ConfigureEntities(EdmModel model) +95
   System.Data.Entity.DbModelBuilder.Build(DbProviderManifest providerManifest, DbProviderInfo providerInfo) +112
   System.Data.Entity.DbModelBuilder.Build(DbConnection providerConnection) +58
   System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext) +62
   System.Data.Entity.Internal.RetryLazy`2.GetValue(TInput input) +117
   System.Data.Entity.Internal.LazyInternalContext.InitializeContext() +452
   System.Data.Entity.Internal.InternalContext.ForceOSpaceLoadingForKnownEntityTypes() +55
   System.Data.Entity.DbContext.System.Data.Entity.Infrastructure.IObjectContextAdapter.get_ObjectContext() +25
   Namespace.Test.Start() in c:\Builds\6\Test\DevDeployed\Sources\Namespace.Test.Kernel\Loader.cs:97
   MvcApplication.Application_Start() in c:\Builds\6\Test\DevDeployed\Sources\Namespace.Test.Kernel\Web\Global.asax.cs:48

Visual Studio でビルドするとアプリケーションは動作しますが、(TFS を介した) 自動配置 Web サイトでこのエラーが発生します (コマンド ラインで MSBUILD を使用する場合と同様)。

適切なエラー メッセージを表示する方法がないように思われるので、何が問題の原因なのかわかりません。VSで動作させることができるので、マッピングの問題ではないと思います。問題が発生するまで、モデルからすべてを除外して導入しようとしましたが、すべて正常に機能しました。

ありがとう!

4

2 に答える 2

1

修正 - 関連付けの両側の構成が問題の原因でした。EF 5 がリリースされたら、それに移行します。

私のチームの 1 人は VS Ultimate を持っているので、intellitrace を使用して EF 内で何が起こっているかを確認できました。ナビゲーション プロパティの 1 つが、ある構成では Optional として定義され、別の構成では Required として定義されていたことが判明しました。モデルが大きすぎて、他の方法でこれを追跡できませんでした。

Visual Studio は依存関係の順序でモデルを構築しているようですが、TFS/MSBUILD は構成クラスによってアルファベット順に構築しているようです。この違いが、開発マシンでは機能したが、TFS ビルドでは機能しなかった理由です。

バージョン 4.3 までに、デバッグ/例外情報がフレームワークに組み込まれたか、少なくともモデルを検証する何らかの方法が組み込まれた可能性があると思われます。

于 2012-05-04T08:38:24.970 に答える
0

It's a bug that should be fixed in Entity Framework 5. EF5 に移行できない場合は、関連付け側の両方の構成でナビゲーション プロパティを指定することで、これを修正できます。

于 2012-05-02T20:57:56.327 に答える