tos*_*ory 4 c# poco nullreferenceexception entity-framework-4.1
我正在使用另一个开发人员创建的实体\表来处理WCF\EF时作为菜鸟的项目.我通常很快就能抓住新事物,而且我对如何使用datacontext在应用程序中完成工作有一些小的基础知识.我唯一的问题是,其他开发人员创建的上下文似乎不起作用,我不确定问题是模型,映射还是表.
这是项目的基本前提.开发人员首先创建数据库,然后使用这些对象的EF映射的POCO对象创建表.他这样做是为了确保以后使用较新的columns\tables轻松升级.在创建模型时,通过覆盖OnModelCreating事件并将映射添加到每个对象的模型构建器来替换映射而不是EF的映射.然后,接下来似乎发生的事情是NullReferenceException:
at System.Data.Entity.ModelConfiguration.Configuration.Properties.Navigation.NavigationPropertyConfiguration.ValidateConsistency(NavigationPropertyConfiguration navigationPropertyConfiguration)
at System.Data.Entity.ModelConfiguration.Configuration.Properties.Navigation.NavigationPropertyConfiguration.Configure(EdmNavigationProperty navigationProperty, EdmModel model, EntityTypeConfiguration entityTypeConfiguration)
at System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration.ConfigureAssociations(EdmEntityType entityType, EdmModel model)
at System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration.Configure(EdmEntityType entityType, EdmModel model)
at System.Data.Entity.ModelConfiguration.Configuration.ModelConfiguration.ConfigureEntities(EdmModel model)
at System.Data.Entity.DbModelBuilder.Build(DbProviderManifest providerManifest, DbProviderInfo providerInfo)
at System.Data.Entity.DbModelBuilder.Build(DbConnection providerConnection)
at System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext)
at System.Data.Entity.Internal.RetryLazy`2.GetValue(TInput input)
at System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
at System.Data.Entity.Internal.Linq.InternalSet`1.GetEnumerator()
at System.Data.Entity.Infrastructure.DbQuery`1.System.Collections.Generic.IEnumerable<TResult>.GetEnumerator()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
Run Code Online (Sandbox Code Playgroud)
我的主要问题是,我似乎找不到任何可以通过搜索引起我的原因的信息,因为我似乎无法找到在这个特定方法中遇到此问题的其他人.我将包含映射\ POCOs \用法的代码片段,但我在这个项目的NDA下,我不知道扩展到什么程度.我的主要问题是,如果有人可以告诉我应该在哪个方面查找此问题的原因... POCO设置,映射设置或表设置?任何帮助将不胜感激!我已经多次查看了所有代码,但似乎无法发现任何事情,所以一些重点会有所帮助.我会尽力帮助.
好.我在这里回帖,所以如果人们在他们的环境中遇到这个方法中的问题,他们可以找出它所在的位置.
由于它编译得很好,POCO看起来很好,我很确定错误与映射有关.我浏览了项目中的上下文,并注释掉了所有DbSet<x>声明,以及每个声明的映射配置.然后我逐个完成,取消注释实体的dbset和配置.然后上下文实例化会成功,我会做下一个实体.我最终留下了两个相关的实体,它们共享一对一的关系,当取消注释时,最终的datacontext实例化将失败.
两个项目之间没有正确定义关系映射.这个链接帮助我解决了EF Code First中的协会问题
这似乎有错误,因为它在验证模型时无法导航导航属性,所以我很确定错误可能发生的原因多于此,我恰好是第一个在此方法中找到它的人.
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
2631 次 |
| 最近记录: |