我有一个使用经典实体框架的大型解决方案。
我正在添加Fluent API,它依赖于DbContext.OnModelCreating中定义的映射。从UnitTest项目运行时一切都很好,因为它没有定义EDMX。
我的主要Web项目仍在使用EDMX(可能暂时没有消失),我正在添加一些使用Fluent API的视图。但是,当我打开我的视图时,我发现从未调用过OnModelCreating,因此我引入的所有流畅映射都不会被添加。
我确实为EDMX和DbContext定义了单独的连接字符串。
我怎样才能确保调用OnModelCreating,即使是使用经典EDMX模型的应用程序?
更新
只要我的Entity类的名称与表的名称相同,就从我的主站点调用OnModelCreating !!这非常令人困惑.. 一旦我改变了类的情况(MYENTITY到MyEntity),就不再调用OnModelCreating !! ,因此所有的映射都不会应用,因此get失败。 。
更新2
令人惊讶的是,如果我尝试重命名一个属性,就会发生同样的事情。
如果我将实体对象的属性从SHORT_NAME更改为ShortName,并在OnModelCreating
更新我的定义...
modelBuilder.Entity<MYOBJECT>()
.Property(f => f.ShortName)
.HasColumnName("SHORT_NAME");
但OnModelCreating
永远不会被调用