Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 是否有任何方法可以从EDMX模型生成DB,而不必对所有表名进行多元化处理?_Entity Framework_Entity Framework 4_Entity Framework 5 - Fatal编程技术网

Entity framework 是否有任何方法可以从EDMX模型生成DB,而不必对所有表名进行多元化处理?

Entity framework 是否有任何方法可以从EDMX模型生成DB,而不必对所有表名进行多元化处理?,entity-framework,entity-framework-4,entity-framework-5,Entity Framework,Entity Framework 4,Entity Framework 5,我忘了在我的Git repo中包含一个DB创建脚本,以便在周末把工作带回家。哈,我想,我能从我的EDMX模型生成一个DB DDL真是太幸运了,但该死的蠢事竟然是用实体集名称作为表名,而不是实体名。这让我的家庭作业野心破灭了 书中有什么技巧可以避免这种情况并恢复我原来的表名吗?如果进入实体设计器,选择一个实体并编辑实体集属性,可以为每个实体显式设置表名。不幸的是,这也会更改ObjectContext上集合属性的名称 奇怪的是,当我在EDMX中只更改了CSDL实体的名称,而不是SSDL实体,但当我生

我忘了在我的Git repo中包含一个DB创建脚本,以便在周末把工作带回家。哈,我想,我能从我的EDMX模型生成一个DB DDL真是太幸运了,但该死的蠢事竟然是用实体集名称作为表名,而不是实体名。这让我的家庭作业野心破灭了


书中有什么技巧可以避免这种情况并恢复我原来的表名吗?

如果进入实体设计器,选择一个实体并编辑实体集属性,可以为每个实体显式设置表名。不幸的是,这也会更改ObjectContext上集合属性的名称

奇怪的是,当我在EDMX中只更改了CSDL实体的名称,而不是SSDL实体,但当我生成脚本时,它使用了来自CSDL实体的名称(不是人们所期望的SSDL实体)。EF的设计师非常古怪


一种解决方案是首先使用代码,通过属性对映射进行显式控制。

我可以建议对此进行破解,但我还没有尝试过,所以我不知道结果,这需要一些工作,也就是说,创建一个DbContext实现(只是一个框架)使用空模型类创建真实模型的精确模型,然后通过单击
DbContext
文件为您生成DDL代码(我知道这需要一些工作)。

我刚刚从多元数据库重新生成了EDMX,它再次对其进行了奇异化,因此我的模型是相同的。:-)