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