实体框架和具有复数名称的表。这是一个问题吗?

时间:2010-11-27 05:55:22

标签: entity-framework-4

我正在处理数据库,所有表都有多个名称。 使用Entity framework 4时的最佳做法是什么。

另外我认为在Sql server中,最好不要将表命名为“Customers”,而应将其命名为“Customer”

简而言之,使用多个表名时会出现问题吗? 如果想要改变它们。我需要一个很好的解释。

任何建议

非常感谢

4 个答案:

答案 0 :(得分:1)

为了理智,只需将单数形式用于所有内容,这样您就知道您的客户被保存在客户表中。将人类语言方面与编程分开。当涉及编程时,复数化的想法是愚蠢的,例如,假设你必须使用Person,Fungus,Goose以及其他具有模糊复数规则的东西。每个人都知道程序员不能拼写,为什么自然语言规则必须蚕食编程呢?然后而不是像以下那样:

列出人物;列出真菌;鹅[]鹅;

我们得到了 清单listOfPerson;清单listOfFungus; Goose [] arrayOfGoose;

自然语言和编程语言是两个独立的实体,并且在编程中强制执行第一个规则并没有带来任何好处。使用某些符合逻辑且对程序员(而不是英语老师)有意义的约定在编程意义上更有益。

但是,这些是关于命名约定的一些建议,我不打算开始命名约定战争。只有在你有意义的情况下才使用这种方法。

如果您使用客户,则不存在任何技术问题,只有您必须根据您的想法在上下文之间进行交换。那么为什么要使用复数化/单一化来复杂化呢?

答案 1 :(得分:1)

具有多个名称的实体框架和表。这是一个问题吗?

完全没有,它只是一个功能。你仍然可以用传统方式做事。 我更喜欢采用多种方式,因为它使关联和关系可读且不太复杂。

答案 2 :(得分:0)

我建议你在正确使用复数形式的情况下,只在版本1.0上对抗当前框架b / c。正在努力增强复数形式和单数形式的能力,以便根据实体是单数还是复数来创建观点。显然,复数形式会给你一个列表或一组东西,而一个单一的实体本身就是那个实体。这个基本事实可以导致人们推断排版可能会根据您选择单数或复数的形式而改变。

实体框架的当前版本假定您不会将所有实体元素组合到单个表单上并同时将它们全部一起提交。相反,他们将为每个实体使用更加安静的方法,以便它分别创建每个实体实例,并且很少并行创建。

答案 3 :(得分:0)

我不建议使用单数名称。我的规则是在有子表时始终复数表名。这样做的原因是为了避免与这些子表上的导航属性混淆。正如我之前在评论中提到的,即使出现语言问题,仍然最好保持所有表格复数。包含绵羊的表应该被称为绵羊,无论它在语言方面是否有意义。