Scaffold(逆向工程)现有数据库返回空集

Posted

技术标签:

【中文标题】Scaffold(逆向工程)现有数据库返回空集【英文标题】:Scaffold (reverse engineering) existing database return empty sets 【发布时间】:2020-04-30 18:04:39 【问题描述】:

我按照 Microsoft 的指示搭建了一个现有的 AzureSQL 数据库,并且之前成功地访问了数据。这是我使用的命令

"PM> Scaffold-DbContext "Server=tcp:******.database.windows.net,1433;Initial Catalog=******;Persist Security Info=False;User ID=** ****;Password=******;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models>

然而上周我的公司更改了数据库的密码,突然 Db Context 模型停止工作。我已经正确更新了连接字符串,甚至重新搭建了模型,但它仍然无法正常工作。请注意,我尝试使用该连接字符串通过 SqlConnection 进行连接或登录到 SQL Sever Explorer,但它们仍然都成功。数据团队说他们只更改了密码,仅此而已。但是,仅与 EF 核心不再起作用。没有消息错误,但是如果我创建一个对象 DbContext 并看到 99% 的 dbset 是空的。下面是我的调试照片。

以前有没有人遇到过这个问题,可以帮助我解决这个问题。提前致谢。我是新人。

【问题讨论】:

嗨,我试图找出问题所在。问题来自我设置 enable 的 csproj 文件。如果我删除它,那么一切都会再次正常工作。我不知道为什么它会影响 DbContext 并使其返回空集,但这就是问题所在。 恭喜!您已经通过删除 csroj 文件中的 'enable' 来解决问题。 ,我帮你把它作为答案发布,然后 Ohers 就可以知道问题已经解决了。您可以接受(标记)它作为答案。这对其他社区成员可能是有益的。谢谢。 【参考方案1】:

恭喜你自己解决了错误:

问题来自我设置启用的 csproj 文件。如果我删除它,那么一切都会再次正常。

我帮助您将其发布为答案,这可能对其他社区成员有益。

【讨论】:

以上是关于Scaffold(逆向工程)现有数据库返回空集的主要内容,如果未能解决你的问题,请参考以下文章

基于现有项目库对composer.json文件进行逆向工程?

mybatis逆向工程

实体框架逆向工程 OnModelCreating

软考 系统架构设计师 简明教程 | 逆向工程

在 Visual Paradigm 中对 Java 包图进行逆向工程

(My)SQL:如果子查询不是空集,则返回子查询