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

Entity framework 4 实体框架和具有复数名称的表。这是一个问题吗?,entity-framework-4,Entity Framework 4,我正在处理一个数据库,所有的表都有复数名称。 使用实体框架4的最佳实践是什么 此外,我认为在Sql server中,最好不要将表命名为“Customers”,而应将其命名为“Customer” 简言之,当使用复数表的名称时,它们有问题吗? 如果我想换衣服,我需要一个好的解释 有什么建议吗 非常感谢为了理智起见,只需对所有内容使用单数形式,这样您就知道您的客户被保存在客户表中。将人类语言方面与编程分开。当涉及到编程时,多元化的想法是愚蠢的,例如,让我们假设您必须与Person、mulge、Goos

我正在处理一个数据库,所有的表都有复数名称。 使用实体框架4的最佳实践是什么

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

简言之,当使用复数表的名称时,它们有问题吗? 如果我想换衣服,我需要一个好的解释

有什么建议吗


非常感谢

为了理智起见,只需对所有内容使用单数形式,这样您就知道您的客户被保存在客户表中。将人类语言方面与编程分开。当涉及到编程时,多元化的想法是愚蠢的,例如,让我们假设您必须与Person、mulge、Goose以及任何其他具有模糊多元化规则的人合作。每个人都知道程序员不会拼写,为什么自然语言的规则必须侵入编程?而不是像这样的事情:

列出人员名单;列出真菌;鹅[]鹅

我们必须 人员名单;真菌名录;鹅[]排鹅

自然语言和编程语言是两个独立的实体,在编程中执行第一个实体的法律不会带来任何好处。其中,使用一些合乎逻辑且对程序员(而不是英语教师)有意义的约定,在编程意义上更有益

但是,这些都是关于命名约定的一些建议,我并不是要开始命名约定之战。只有对你有意义的时候才使用这个方法


如果您使用客户,就不会有技术问题,只是您必须根据您头脑中的上下文在他们之间不断交换。那么,为什么要使用复数化/单数化使事情复杂化呢?

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

一点也不,这只是一个特征。你仍然可以用传统的方式做事。
我更喜欢用复数的方式,因为它使关联和关系更容易理解,也不那么复杂。

我建议您在正确使用复数形式方面,与当前的框架b/c作斗争,它只有在1.0版。有力量在增强复数和单数形式的能力,从而根据实体是单数还是复数来创建视图。显然,复数形式会给你一个列表或一组东西,而单数实体本身就是那个实体。这一基本事实可以让我们推断,排版可能会根据您选择的单数或复数形式而变化


实体框架的当前版本假定您不会将所有实体元素合并到一个表单中,并同时提交它们。相反,他们将对每个实体使用更为restful的方法,以便它单独创建每个实体实例,很少并行创建。

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

我想EF4处理得很好,因此没有问题。thanksI完全不同意这篇文章。我更喜欢表的复数名称,否则会导致导航属性混淆。如果您按照应该的方式使用EF,那么将表多元化是完全有意义的。当您开始编写Linq查询时,您将明白我的意思。context.customers.where()vs。。context.customer.where()@Kevbo,为什么要应用自然语言的规则?那么西班牙语或德语的规则呢?Arjang-我相信在任何语言中都有很难实现多元化的情况。放羊的桌子叫什么?即使语言不适合,我还是会称之为“桌上的羊”。这样,任何子表都将具有名为Sheep的导航属性,该属性指向该表中的单个实体。当你应用同样的规则时,一切都会完美无瑕。EF实际上鼓励了这一点,那么为什么要偏离它呢?我完全同意先前发布的user9969。@Kevbo:所以用s调用所有复数就解决了问题,现在问题解决了,我明白你的意思了,是的,人、羊、鹅。。。忽略英语,使用同样的多元化规则是一个更好的解决方案,你能不能把这个作为一个答案,我更喜欢它,而不是我自己的答案。