如何使用Entity Framework Core直观地设计我的数据库?

时间:2016-08-05 12:49:09

标签: c# sql-server entity-framework typescript entity-framework-core

我想知道自己,我应该如何设计我的数据库方案(在效率和可视性方面)。

我正在使用Angular 2开发一个ASP.NET Core应用程序,我正在使用Entity Framework Core"Microsoft.EntityFrameworkCore": "1.0.0"),因为它是我最喜欢的ORM。我绝对更喜欢SQL Server 2012,但如果有更好的选择来设计我的方案可用于其他数据库管理系统,我可以切换到其他类似PostgreSQL。

然而,

EntityFrameworkCore不再支持使用EDMX设计器设计DataContext(及其所有POCO类)。

您能否给我任何建议,我可以直观地设计我的数据库并自动生成我的POCO类(也可能是我的TypeScript类)?

你能为我推荐一个设计我的方案的好工具吗? (至少比SQL Server Management Studio更方便。我喜欢EDMX设计师)

编辑2019-03-28

由于SQL Server Management Studio的最新更新日志(18.0 Preview 7)已宣布, Database Diagrams已被弃用,我真的需要一种替代方案来尽快可视化我的数据库尽可能。

编辑2019-04-03

既然有人可能偶然发现了这个问题而没有人为我的问题提供答案,但是......你走了:VS Extension: Entity Developer ORM Designer for LINQ to SQL

2 个答案:

答案 0 :(得分:5)

如果您更喜欢从数据库开始,您可以使用您认为最适合您创建数据库的数据库平台的任何设计工具,然后使用EF命令从数据库中构建模型和上下文。您可以从Package Manager控制台执行命令,就像以前版本的EF中的迁移一样:

Scaffold-DbContext "Server=yourServer;Database=yourDb;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

官方文件涵盖reverse engineering a model from an existing database

答案 1 :(得分:2)

您可以使用终端(控制台)中的dotnet ef dbcontext scaffold命令使用enities来构建DbContext。因此,您可以以任何方式设计数据库,然后运行scaffold命令,您将获得生成的DbContext和类。

这里有关于命令的文档: https://docs.efproject.net/en/latest/miscellaneous/cli/dotnet.html#dotnet-ef-dbcontext-scaffold