问题 Scaffold-DbContext为没有主键的表创建模型


我正在尝试为ASP.NET核心MVC应用程序中的特定表创建DBcontext和相应的模型。该表没有任何主键。

我按照Scaffold-DbContext命令运行 -

Scaffold-DbContext "Server=XXXXX;Database=XXXXXXX;User Id=XXXXXXX;password=XXXXXXX" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -t TABLE_NAME -force -verbose

在软件包管理器控制台中,我可以看到这个详细的输出 -

...............
...............
Unable to identify the primary key for table 'dbo.TABLE_NAME'.
Unable to generate entity type for table 'dbo.TABLE_NAME'.

我的环境是 - VS2015 update3,.NET核心1.0.0,ASP.NET MVC核心应用程序。

无论如何都要为没有主键的表创建模型?


10310
2017-09-26 10:59


起源



答案:


EF Core中对复杂类型(没有实体密钥的类型)的支持在积压工作中: https://github.com/aspnet/EntityFramework/issues/246。这就是为什么在没有定义主键的情况下对表进行逆向工程的任何尝试都不会起作用。


11
2017-09-26 11:25



谢谢迈克。目前可用的任何解决方法?我只是想从表中读取数据;此表不需要插入/更新/删除操作。 - Sanket
1。5年过去了。它仍然是相同的情况?没有主键我们还能不支持表吗? - Sunny Tambi
逆向工程工具的最新版本仍然需要在表格上定义PK以用于模型生成。 - Mike Brind
这是2018年3月..悲伤。 - hubert17


答案:


EF Core中对复杂类型(没有实体密钥的类型)的支持在积压工作中: https://github.com/aspnet/EntityFramework/issues/246。这就是为什么在没有定义主键的情况下对表进行逆向工程的任何尝试都不会起作用。


11
2017-09-26 11:25



谢谢迈克。目前可用的任何解决方法?我只是想从表中读取数据;此表不需要插入/更新/删除操作。 - Sanket
1。5年过去了。它仍然是相同的情况?没有主键我们还能不支持表吗? - Sunny Tambi
逆向工程工具的最新版本仍然需要在表格上定义PK以用于模型生成。 - Mike Brind
这是2018年3月..悲伤。 - hubert17