【问题标题】:Can ASP.NET MVC + EF scaffolding be used after implementing EntityTypeConfiguration classes?实现 EntityTypeConfiguration 类后可以使用 ASP.NET MVC + EF 脚手架吗?
【发布时间】:2017-09-10 08:19:47
【问题描述】:

背景

当模型使用数据注释OnModelCreating(DbModelBuilder) 中的直接行来描述它们的特征时,用于绑定到实体框架的新 ASP.NET MVC 控制器的 Visual Studio 脚手架运行良好。

问题

但是,在我们的场景中,OnModelCreating 的内容是使用单独的 EntityTypeConfiguration<T> 类重构的。尝试通过 MVC+EF 脚手架创建新 Controller 时出现以下弹出错误:

运行所选代码生成器时出错:'A SomeModelClass 类型的配置已添加。至 引用现有配置使用Entity<T>()ComplexType<T>() 方法。'

是否有修复(例如自定义代码或项目配置)?

【问题讨论】:

  • 您使用的是哪个版本的 Visual Studio 和 asp.net MVC?

标签: c# asp.net-mvc entity-framework visual-studio ef-model-builder


【解决方案1】:

这似乎与您的问题相同: Scaffolding controller doesn't work with visual studio 2013 update 3 and 4

这是一个似乎有效的解决方案:

我为我的一个模型类添加了一些自定义配置,以使用 fluent API 添加关系。这是在 OnModelCreating 覆盖的我的 dbContext 类中使用以下内容指定的:

modelBuilder.Configurations.Add(new OrderConfiguration()); 注释掉以上行允许 Controller 脚手架按预期运行。

VS 2013 更新 2 有一个问题,脚手架出现了一个无用的错误,没有进一步的信息。在已安装的更新 3 中,它提供了足够的详细信息来追踪潜在问题。

【讨论】:

  • 这是一种避免,而不是解决方案。断开生成器(即注释掉 Configurations.Add() 行,防止脚手架知道关联的实体属性,这正是您希望脚手架处理的。
猜你喜欢
  • 2016-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-06
  • 2011-10-23
  • 1970-01-01
相关资源
最近更新 更多