3

I forgot to include a DB creation script in my Git repo to bring work home for the weekend. Ha, I thought, how fortunate I can generate a DB DDL from my EDMX model, but the bloody daft thing goes and uses the entity set names for table names, not the entity names. This blows any ambitions I had of homework out of the bloody water.

Is there any trick in the book to avoid this and get my original table names back?

4

2 回答 2

0

我可以为此建议一个 hack,但我没有尝试过,所以我不知道结果,它需要一些工作,话虽如此,创建一个DbContext带有空模型类的实现(只是一个骨架)来创建一个您的真实模型的精确模型,然后使用Entity Framework Power Tools通过单击DbContext文件为您生成 DDL 代码(我知道这需要一些工作)。

于 2013-03-04T02:15:24.027 回答
0

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

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

一个解决方案是使用 Code First,您可以通过属性显式控制映射。

于 2013-01-12T20:41:28.247 回答