实体框架数据库优先工作流设计器失败

Posted

技术标签:

【中文标题】实体框架数据库优先工作流设计器失败【英文标题】:Entity Framework database-first workflow designer failed 【发布时间】:2021-08-23 09:55:40 【问题描述】:

我正在尝试使用 Entity Framework 的数据库优先工作流设计器创建 EDM。它在开始运行并显示错误消息后立即失败

对象引用未设置为对象的实例

但是,它创建了一个只有 2 个文件而不是 4 个文件的 .edmx 模型:[name].Designer.cs[name].edmx.diagram。这两个文件丢失了:[name].Context.tt[name].tt

我有最新版本的 VS (16.10.0) 和 EF (6.4.4) 并将数据库存储在本地主机上,但是尝试使用不同的旧版本 VS 和 EF 创建 EDM 并得到相同的结果。我可以请您提示一下我所做的事情有什么问题吗?

提前致谢

Error message

附: BTW [name].Designer.cs 文件包含与缺少以下引用相关的错误:

System.Data.Entity.Core.Objects.DataClasses.EdmSchemaAttribute, System.Data.EntityClient, System.Data.Objects 和 System.Data.Objects.DataClasses。

换句话说,这些引用由于某种原因无法添加。

Screenshot of VS

UPD。尝试在另一台机器上用其他旧版本的 VS 和不同版本的 EF 做同样的事情,结果是一样的。在那种情况下,数据库并没有存储在本地。

【问题讨论】:

究竟是什么代码抛出了错误?将其发布在您的问题中!如果我们能看到您是如何配置的,那将会有所帮助。 @Alexey Pankratov,“它在开始运行并显示错误消息后立即失败”,你跑步的第一步是什么?另外,根据我的搜索,您提到的参考与实体框架的 EntityClient Provider 相关,而不是首先与 Entityframework 数据库相关。使用方法可以参考微软文档Database First。 @JackJJun-MSFT 感谢您的建议。我按照这种方法做了所有事情,但问题并没有消失。然后我检查了一个项目类型,它是“控制台应用程序”或“类库”。这些类型的项目链接到 .NET Core 3.1。尝试对“ClassLibrary (.NET Framework)”项目类型做同样的事情,一切都开始工作了。所以这就是问题的根源。 @Alexey Pankratov,我很高兴听到您的问题已经解决。您可以回答并单击“✔”以接受它作为答案。它还将帮助其他人解决类似的问题。 【参考方案1】:

如果包含实体关系数据模型(.edmx项)的项目类型与目标项目之间存在一些不一致,可能会导致上述不合逻辑的错误。因此,最好检查一下,包含 ERDM 的项目和目标项目是否分别链接到相同版本的 .NET Framework 或 .NET Core。

【讨论】:

以上是关于实体框架数据库优先工作流设计器失败的主要内容,如果未能解决你的问题,请参考以下文章

更新映射到视图的实体框架实体

实体框架代码优先:迁移失败并更新数据库,强制不必要的(?)添加迁移

使用 DbUp 的实体框架代码优先

实体框架模型优先:以编程方式创建 UNIQUE 约束

实体框架代码优先问题(SimpleMembership UserProfile 表)

实体框架支持来自数据库优先方法的默认约束