【发布时间】:2012-02-22 17:56:23
【问题描述】:
首先使用 EF 代码,我们有一个 db 种子框架,它使用依赖注入的 Db 初始化器和种子器来使用示例测试数据填充 dev db。
其中一些种子操作需要导入大量数据,因此对于几个表,我们使用带有 INSERT 语句的实际 SQL 文件。对于其中一些插入语句,必须禁用外键然后重新启用:
ALTER TABLE [Schema].[TableName] NOCHECK CONSTRAINT [TableName_FkPropertyName]
-- perform a block of inserts
ALTER TABLE [Schema].[TableName] CHECK CONSTRAINT [TableName_FkPropertyName]
我刚刚从 EF 4.2 更新到 EF 4.3,并注意到这些不再有效。对 EF 创建的数据库的检查表明,FK 现在的命名不同:
FK_CodeFolder1.Table1Name_CodeFolder2.Table2Name_DbFkColumnName
有什么办法可以去掉这个命名约定并回到原来的样子?如果不是,这怎么不是known issue or breaking change?
Ladislav 回复后更新
Ladislav 是对的,我上面对新命名模式的解释不太正确。我已经更新了它。前面的部分。不是完整的命名空间,而是实体模型项目中文件夹的名称。因此,如果我在文件夹 AggregateSet1 中有一个实体 WidgetAbc,则 fk 模式片段将是 AggregateSet1.WidgetAbc,而不仅仅是 WidgetAbc。
【问题讨论】:
标签: entity-framework-4 naming-conventions ef-code-first entity-framework-4.3