如何使用“数据库优先方法”在 Firebird 数据库中实现 Entity Framework Core 3.1.2
Posted
技术标签:
【中文标题】如何使用“数据库优先方法”在 Firebird 数据库中实现 Entity Framework Core 3.1.2【英文标题】:How to implement Entity Framework Core 3.1.2 with Firebird database using 'database first approach' 【发布时间】:2020-06-15 23:12:56 【问题描述】:我目前正在开发一个 .NET Core 3.1 Web API,它应该与 Firebird 数据库通信(存储/检索数据)。我想使用Microsoft.EntityFrameworkCore
3.1.2 处理该通信。实体框架对我来说是全新的,如果这个问题太简单,请原谅。但我在网上找不到答案。
因为数据库非常大,我想使用 EF Core 自动生成所有我需要的模型。
我尝试在数据包管理器控制台中使用Scaffold-DbContext
命令:
Scaffold-DbContext "user id=USER;password=PASSWORD;database=DATABASE;data source=SOURCE;port number=PORT;character set=UNICODE_FSS;pooling=False;server type=Default" FirebirdSql.EntityFrameworkCore.Firebird -OutputDir Models
Entity Framework Core 正在生成 Context.cs
,但没有生成任何模型。
我必须指定要导入的模型吗?我该怎么做?
【问题讨论】:
考虑在firebird-net-provider Google group上提问。 【参考方案1】:总结对 firebird-net-provider 组中the question you posted 的响应,Firebird 目前不支持在 EntityFrameworkCore 中搭建模型。对此的改进票是DNET-798。
【讨论】:
【参考方案2】:您也可以将其用于 MSSQL:Scaffold-DbContext "Server=ServerName;Database=DBName;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir 模型。
对于 Firebird DB,FirebirdSql.EntityFrameworkCore.Firebird 在版本 7 中不支持 DbContext。您应该为 Firebird 使用版本 8。
【讨论】:
以上是关于如何使用“数据库优先方法”在 Firebird 数据库中实现 Entity Framework Core 3.1.2的主要内容,如果未能解决你的问题,请参考以下文章