Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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
C# 任意命名约定(业务对象)_C#_Oop_Object_Naming - Fatal编程技术网

C# 任意命名约定(业务对象)

C# 任意命名约定(业务对象),c#,oop,object,naming,C#,Oop,Object,Naming,好的,您是做Business.Name还是Business.BusinessName SubCategory.ID或SubCategory.SubCategory.ID 在你的数据库里呢 为什么? 我对这两件事都很恼火。我希望有一个“正确的答案”唯一“正确”的答案是保持一致。预先决定在项目中使用哪个属性,并坚持使用。对于非常常见的属性,如“Name”和“ID”,我使用的约定是不将实体名称放在字段中。对于更不寻常的属性,我会使用实体名称 这是一个命名约定的决定,但我并不后悔这是约定的项目,如果您为

好的,您是做
Business.Name
还是
Business.BusinessName
SubCategory.ID
SubCategory.SubCategory.ID

在你的数据库里呢

为什么?


我对这两件事都很恼火。我希望有一个“正确的答案”

唯一“正确”的答案是保持一致。预先决定在项目中使用哪个属性,并坚持使用。

对于非常常见的属性,如“Name”和“ID”,我使用的约定是不将实体名称放在字段中。对于更不寻常的属性,我会使用实体名称


这是一个命名约定的决定,但我并不后悔这是约定的项目,如果您为每个ID输入实体的名称,结果看起来太冗长了。

我们对任何主键都使用ID。说SubCategory.SubCategoryID似乎是多余的,

使用ID、Name等的主要缺点是,如果要编写重叠两个表的SQL联接,则必须使用表名对它们进行限定

尽管如此,我发现只使用ID和名称要简洁得多,可读性强得多——您的代码和表将更容易通过眼睛“流动”。更容易输入,冗余更少。然后键入SELECT Business.Name FROM。。。在SQL查询中,输入SELECT BusinessName FROM并不比输入SELECT BusinessName更麻烦


一般来说,如果我发现自己重复语义信息,它会提醒我寻找消除它的方法,或者至少识别它重复的原因。这可能是小范围的(属性名称)或大范围的(行为模式或常见的类结构)。

我可能不对,但我认为Id是一道更美味的菜

thing.id
因为如果你要写任何关于你的对象的反射性的东西,并且需要主键,那么你就更容易在任何地方知道它,然后尝试用公式来确定它

至于另一个,这是完全的偏好,除了浪费时间键入其他字符和它的.net之外,我看不到任何真正的含义,所以实际上没有人键入名称空间