Visual Studio 2012 中数据库优先实体框架模型的 MVC4 支架

2024-02-01

我在使用 Visual Studio 2012 时遇到问题,尝试添加带有脚手架的 MVC4 控制器。理想情况下,我希望在与我的 Web 应用程序分开的程序集中使用添加新项 - ADO.NET 实体数据模型(即不是代码优先)从数据库生成实体框架模型(edmx 文件等)。但是,当我设置它并使用“添加控制器”,指定“具有读/写操作和视图的 MVC 控制器,使用实体框架”并从我的 DatabaseModel 程序集中选择模型类和数据上下文类时,会弹出以下警报消息。

“Ifl.Payforit4.DatabaseModel.Mno”不是指定的一部分 'Ifl.Payforit4.DatabaseModel.Payforit4Entities' 类,以及 'Ifl.Payforit4.DatabaseModel.Payforit4Entities' 类不能 修改为添加“DbSet”属性 它。 (例如,“Ifl.Payforit4.DatabaseModel.Payforit4Entities” 类可能位于已编译的程序集中。)

无法修改该类是有道理的,因为它位于另一个程序集中,尽管在同一解决方案中,并且是通过 T4 自动生成的,但查看 Payforit4Entities 的自动生成代码,“DbSet”属性已经很明显地存在了。

    public DbSet<Mno> Mnoes { get; set; }

我还尝试过很多其他的事情。

  1. 将数据模型直接放入 Web 应用程序中
  2. 将模型类更改为数据库中的各种其他表,以防 Mno 类出现问题
  3. 将数据模型简化为一个简单的表
  4. 使用 Entity Framework Power Tools Beta 2 对 Code First 模型进行逆向工程。这产生了一组新的错误。我明白为什么它是测试版。
  5. 将 ADO.NET 数据模型代码生成策略从“无”更改为“默认”,以创建基于 ObjectContext 而不是 DbContext 的数据模型
  6. 关闭复数,因此属性名称为 Mno 而不是 Mnoes

他们都没有工作。唯一有效的方法是手动编写 Code First DbContext 派生类和 POCO。巧合的是,我发现的每个演示 MVC4 脚手架的示例都使用这种数据模型。有没有什么地方说 Code First 是唯一适用于 MVC4 脚手架的数据模型?有人设法在 Visual Studio 2012 中构建数据库优先 (.edmx) 数据模型吗?数据库足够复杂,我宁愿坚持数据库优先策略。

我可以看到,“代码优先”模型与“数据库优先”模型的脚手架必定存在一些差异。例如,前者具有 POCO 属性,保存由 KeyAttribute 指示的密钥,而后者则在 edmx 模型文件中保存该信息。这是 Entity Framework Power Tools 中逆向工程功能的基本原理吗?为了使用 MVC4 脚手架,我们是否期望从 edmx 文件转向逆向工程 Code First 模型?如果是这样,我们是否期望继续使用动态数据项目,直到实体框架电动工具完成?


技巧是首先编译您的解决方案,然后输入上下文类manually。不要从下拉列表中选择它,只需自己输入类名,它就会神奇地起作用;-)

看这里:ASP.NET MVC4 – 如何在 MVC 控制器中使用数据库优先 EF http://jefferytay.wordpress.com/2013/02/19/asp-net-mvc4-how-to-use-a-database-first-ef-in-a-mvc-controller/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Visual Studio 2012 中数据库优先实体框架模型的 MVC4 支架 的相关文章

  • Linq to 实体使用 `Func` 在生成匿名对象的 select 语句中创建属性

    我正在使用 linq to 实体开发一种简单的文本搜索方法 我想在几个地方重用该方法 看起来有点像这样 IQueryable
  • 将 Expression> 转换为 Expression>

    确实很简单的问题 我有显示 Nullable Bool 的 MVC 视图 例如 Html CheckBoxFor model gt model NullableBoolHere Model NullableBoolHere 我想创建一个新的
  • 在操作之外执行异步操作 asp.net mvc

    我希望能够在每个请求上从云数据库加载用户 并使用 asp net mvc 在控制器中的请求上提供该用户 问题是当前框架不支持从操作过滤器执行异步操作 所以 OnActionExecuting OnAuthorization 方法不允许我这样
  • 使用 Automapper 映射列表

    我有课程 public class Person Props here public class PersonViewModel Props here 然后是清单 List
  • 相对于路径匹配路由

    我想要任何以以下结尾的网址 templates filename 使用路由属性映射到特定控制器 例如 public class TemplateController Controller Route templates templateFi
  • ASP.NET 会话状态和多个工作进程

    我需要了解一些有关 ASP NET 会话状态的信息 因为它适用于 IIS 7 和 ASP net 3 5 如果应用程序配置为使用进程内会话状态 那么如果有多个工作进程 该应用程序是否可以正常工作 换句话说 工作进程是否共享会话状态 IIS
  • 在 VS 2012 中创建并运行 MVC 5 项目

    由于某种原因 我的 Visual Studio 2013 预览版无法创建 MVC 5 项目 由于 MVC 项目现已在 CodePlex 中开源 我想知道是否有一种简单的方法可以在我的 Visual Studio 2012 Ultimate
  • 如何将 PhoneGap 与 Visual Studio 结合使用

    我在 Windows 8 VS 2012 上开始使用 PhoneGap 时遇到问题 即 我不知道如何安装模板 我打开从PhoneGap下载的模板项目 但它们与VS2012兼容 我不知道从哪里开始创建我的第一个简单的 CRUD 应用程序 我想
  • 如何从 C# 控制器重定向到外部 url

    我使用 C 控制器作为网络服务 在其中我想将用户重定向到外部网址 我该怎么做 Tried System Web HttpContext Current Response Redirect 但没有成功 使用控制器的重定向 http msdn
  • MVC3 中的“方法‘LabelFor’没有重载需要 2 个参数”

    我正在运行 ASP NET MVC 3 并且正在查看模型的编辑视图 我有一个FullName我想呈现为 全名 的属性 这是有问题的行 div class display label div 现在智能感知shows存在重载 有两个签名 第一个
  • 实体框架代码优先 - 外键约束问题

    我是 EF 代码优先主体的新手 目前不知道该怎么做 我有 2 个 POCO 类 public class Problem public int ProblemID get set public int UserID get set publ
  • 无法加载文件或程序集“System.Web.Razor”或其依赖项之一

    我在我的网站 Web 应用程序 中使用了 Umbraco 4 11 6 我的网站在 localhost 中工作 通过 Visual Studio 2012 和 IIS v7 进行测试 但是当我从互联网空间运行它时 出现错误 错误是 无法加载
  • 在实体框架 6 中使用 SqlQuery>

    我正在尝试在 EF 6 中执行 SQL 查询 select查询返回两个字符串列 例如select a b 并且可以有任意数量的行 我想将结果映射到字典 但我无法摆脱以下错误 错误 1 无法将类型 System Data Entity Inf
  • 在 MVC 控制器内打开 websocket 通道

    有没有人有在 MVC 控制器内打开 websocket 连接的良好经验 技术栈 ASPNET Core 1 0 RC1 MVC dnx46 System Net WebSockets 为什么使用 MVC 而不是中间件 为了整体一致性 路由
  • 防止更新 ASP.NET MVC 和实体框架中未更改的值

    我正在使用 ASP NET MVC 和实体框架 我有一个 编辑人员 网页 可以在其中编辑人员的字段 然后在回发操作中 我使用以下代码 var person objectCtx Persons Where s gt s Id id First
  • asp.net mvc jquery 下拉验证

    我如何使用不显眼的 javascript 验证下拉列表 作为所需验证器的验证文本框 但它不适用于下拉列表 需要更改不显眼的 js 文件吗 或者还有其他选项来验证下拉列表吗 我想在我的 javascript 中检查 form validate
  • Visual Studio Intellisense 颜色编码不起作用

    现在 在我的代码中 突然有些代码的颜色未编码为 Visual Studio 经典主题颜色 我不确定我的代码中是否存在错误 但是当我定义某些属性时 例如 public class VideoEncodeTest AndroidPowerTes
  • MVC 3 布局页面、Razor 模板和 DropdownList

    我想在我的网站的所有页面上包含年份的下拉列表 我认为放置此逻辑的好地方是布局页面 layout cshtml 如果用户更改年份 我想更改我的年份会话 ModelBinder 也进行更改 这对于 ASP NET Web 表单来说很容易做到 但
  • EntityHydrate 任务失败

    我最近安装了 Visual Studio 11 Beta 和 Visual Studio 2010 之后 我无法在 Visual Studio 2010 中构建依赖于 PostSharp 的项目 因此我卸载了 Visual Studio 1
  • ASP.NET MVC - 用于管理的区域还是单独的 Web 应用程序?

    到目前为止我一直在使用MVC Area为了行政我的 mvc 应用程序的一部分 但最近我开始重新思考这个问题由于每个应用程序不能有多个表单身份验证配置 这已经成为一个问题 因为在最近的一个项目中 我想将身份验证 cookie 设置为不会对用户

随机推荐

  • 在 Java 11 上编译 Android 数据绑定的 JAXB 依赖项放在哪里?

    我正在使用 Android 数据绑定 虽然事情很简单 但运行得很好 但是 一旦我添加了BindingAdapter https developer android com reference android databinding Bind
  • 在 SQL Server 中使用开始/结束块和 Go 关键字?

    何时使用该指南有哪些指导原则BEGIN and ENDSQL Server 中的关键字 另外 到底是什么GO关键字做什么 GO 就像脚本的结尾 您可以有多个 CREATE TABLE 语句 并用 GO 分隔 这是一种将脚本的一部分与另一部分
  • 聚集索引列上的非聚集索引可以提高性能吗?

    在SQL Server 2005中 查询分析器多次告诉我在已经有聚集索引的表的主ID列上创建非聚集索引 遵循此建议后 查询执行计划报告查询应该更快 为什么同一列 具有相同排序顺序 上的非聚集索引比聚集索引更快 聚集索引包含表的所有数据 而非
  • 探测扩展时出现 GET net::ERR_FAILED 错误

    有一个特定的 Chrome 扩展程序 我想从中获取一个 PNG 文件XMLHttpRequest 如果启用了扩展 我想将 load 写入控制台 如果禁用扩展 我想将 error 写入控制台 它工作正常 但如果禁用扩展程序 Chrome 会在
  • 列出 GCP 帐户/组织的所有用户

    我在 GCP 中有一个组织 其中有多个项目 有没有办法列出所有项目用户及其角色 而不必逐个项目访问项目 我正在使用gcloud projects get iam policy PROJECTNAME 但列出单个项目的用户 我有几百个 Tha
  • Javascript:无法将 href 添加到列表项

    我正在尝试将新项目添加到列表项目中 但下面的代码没有将超链接添加到我想要的列表项 有人可以告诉我出了什么问题吗 HTML div ul li Ut enim ad minim veniam li li Excepteur sint occa
  • “Angular cdk Drag drop”用于将列表中的项目拖放到容器中(无序)

    我知道 cdk 拖放可以很好地处理列表 并且有很多示例 但我想做的是 一侧是列表 另一侧是容器 容器中的物品应该位于容器中的任何位置 并且可以由 x 和 y 轴固定 因此 当从列表中拖放到容器中的某个 x y 处时 该项目应保持该位置 请帮
  • ASP MVC5 身份用户抽象

    我想使用默认的 Identity 2 提供程序构建 N 轮胎 Web 应用程序 因此 我的数据层包含带有模型定义的纯 C 类 没有任何外部依赖性 但如果不添加 AspNet Identity 引用 就不可能将某些类链接到我的应用程序用户 我
  • 如何获取 iOS 框架测试目标并在虚拟应用程序中运行它?

    所以我遇到了一个问题 我的框架需要访问KeyChain 很好 但是在模拟器中运行时似乎失败了 挖掘它似乎是一个已知的问题xctest在这里做错事了 公平地说 错误是会发生的 在 Apple 开发者论坛中 对此进行了讨论 Right 这是库测
  • 验证两个表的唯一性

    我有一个Company and Archive具有相同表结构的模型 两种型号都有一个validates name uniqueness gt true验证 在 company rb 文件中 我在设置自定义验证时遇到问题 当我将记录添加到Co
  • Ruby 的 Object#taint 和 Object#trust 方法是什么?

    我正在阅读有关 Ruby 字符串方法的内容docs http www ruby doc org core 1 9 3 String html并遇到了这些方法 taint trust untaint untrust 我不知道它们是做什么的 我
  • BottomNavigationView:如何删除连字符标签

    实现 5 项 BottomNavigationView 始终显示标签 我使用以下方法
  • 如何在 extjs 中的网格页脚中添加总行数

    我想在网格页脚中添加总行数 我有商店中可用的总行记录 在网格中 用户选择降序排列 总计行显示为第一行 谁能告诉我如何避免这种情况 我将解释我的完整问题 例如 我有像 Target Target1 Target2 这样的网格视图 是从网络服务
  • Integer.parseInt(string) 实际上是如何工作的?

    最近被问到这个问题 不知道答案 有人可以从高层次解释Java如何获取字符 字符串并将其转换为int 通常这是这样完成的 初始化结果为 0 for each character in string do this 结果 结果 10 从字符中获
  • 如何用笛卡尔绘制波纹圆?

    I m looking for a way to plot a corrugated circle https www mypandakitchen com 1656 large default emporte pieces rond on
  • 扩展界面生成器中的属性检查器

    是否可以使用继承自 UIView 的自定义类的附加属性来扩展界面构建器的属性检查器 现在不行 Interface Builder 允许您通过 Interface Builder 插件为您的对象实现自定义检查器 不过 IB Kit 目前不支持
  • 如何从 ipython 启动twisted的reactor

    我需要从 ipython 中启动一个twisted reactor 以允许继续交互 Ipython 的手册页引用了twisted 但我无法理解应该如何继续 文档引用了 IPython kernel twistedutil 所以我的印象是它应
  • 在 ASP.NET core 中添加迁移时不考虑新的更改

    我和一个朋友正在作为队友参与 ASP NET Core 项目并使用以下工具共享数据github 每次从 who 中提取更改时github 应该删除Migration folder为了添加迁移而不会出现任何错误 否则 我们会收到以下错误 数据
  • 寻找第 N 个孪生素数

    我试图解决 SPOJ 上的问题 我们需要计算第 n 个孪生素数对 相差 2 的素数 n 可以大到 10 5 我尝试使用筛子进行预先计算 我必须筛选最多 10 8 才能获得最大的 n 个孪生素数 但时间限制很严格 2s 并且超时 我注意到人们
  • Visual Studio 2012 中数据库优先实体框架模型的 MVC4 支架

    我在使用 Visual Studio 2012 时遇到问题 尝试添加带有脚手架的 MVC4 控制器 理想情况下 我希望在与我的 Web 应用程序分开的程序集中使用添加新项 ADO NET 实体数据模型 即不是代码优先 从数据库生成实体框架模