我有多个表格形式的表定义和数据。表定义也可能不时更改。
我想在运行时从Theese定义中创建EF核心表,然后从这些文件中填写它们。
如果可能的话,迁移也很不错。
这是可能的吗?
另外:是否有可能从databasecontext?
或我应该最好只使用普通(NPG)SQLCommands来创建,插入和更新?
我正在使用npgsql btw。
如果您只想执行自己的SQL来创建表,那么使用NPGSQLCommand(ado.net)或EF Core并不重要。EF Core实际上没有任何附加的值来执行这种RAW SQL,因此您最好只使用NPGSQLCommands。但是,确保您的EF核心代码模型与文本定义完全相对应是您的责任。您要么手动确保(通过维护准确对应的C#类模型),还是可以从定义创建的数据库中逆转工程模型)。
但是,迁移是完全不同的事情。如果这个想法是要保持外部表定义甚至不断发展,那么迁移并没有真正的意义 - 您的外部定义是您在架构上的真实性来源,并且一切都从中得出。如果您想与EF核心迁移一起工作,那么您的C#模型必须是您的单一真实来源 - 您对此进行更改并更新数据库。
请注意,从现有数据库中更新代码模型存在问题 - 这将使您可以在数据库上进行更改(通过外部定义?)并更新代码模型,而不是从scratch中重新生成。但是,这还没有实现。