Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.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# 命名方法时,SAVE/CREATE/PERSIST之间的区别是什么?_C#_.net_Crud - Fatal编程技术网

C# 命名方法时,SAVE/CREATE/PERSIST之间的区别是什么?

C# 命名方法时,SAVE/CREATE/PERSIST之间的区别是什么?,c#,.net,crud,C#,.net,Crud,假设您在服务器端的一个实体存储库中有一个方法 此方法在数据库中插入或更新Foo实体 您需要命名这个方法 从命名约定的角度,您能否解释这些名称之间的差异(如果有): SaveFoo(Foo-Foo) PersistFoo(Foo-Foo) CreateFoo(Foo-Foo) 保存或更新(Foo-Foo) 或者这种只插入或更新数据库的方法的命名约定是什么?函数的用途是什么?保存(或者坚持,如果你喜欢的话),对吗?您可能不在乎函数是否必须插入或更新它。。。这是抽象的,所以你不必去想它。所以,不管

假设您在服务器端的一个实体存储库中有一个方法

此方法在数据库中插入或更新Foo实体

您需要命名这个方法

从命名约定的角度,您能否解释这些名称之间的差异(如果有):

  • SaveFoo(Foo-Foo)
  • PersistFoo(Foo-Foo)
  • CreateFoo(Foo-Foo)
  • 保存或更新(Foo-Foo)

或者这种只插入或更新数据库的方法的命名约定是什么?

函数的用途是什么?保存(或者坚持,如果你喜欢的话),对吗?您可能不在乎函数是否必须插入或更新它。。。这是抽象的,所以你不必去想它。所以,不管你喜欢什么,就叫它Save或Persist。这是我的两分钱。

这个函数的用途是什么?保存(或者坚持,如果你喜欢的话),对吗?您可能不在乎函数是否必须插入或更新它。。。这是抽象的,所以你不必去想它。所以,不管你喜欢什么,就叫它Save或Persist。这是我的两分钱。

如果你在一个团队中工作,你应该首先尝试找出那里是否有一个惯例,因为保持一致通常比为某件事找到绝对最好的名字更重要

使用Save或Persist会起作用,因为它们并不意味着任何关于前一个状态的信息

使用Create意味着该项不存在,即插入项

使用SaveOrUpdate可能会有些混乱,因为Update意味着该项已经存在,但Save并不意味着与状态有关的任何内容,因此它们重叠


也许InsertOrUpdate是另一种选择,或者CreateOrUpdate。这两种方法都可以作为Insert和Create,这意味着该项还不存在,而Update则意味着它确实存在,因此它们不会重叠。它们也比“保存”或“持久”更精确,因为名称明确表示它们同时处理“插入”和“更新”。

如果您在团队中工作,您应该首先尝试找出是否存在约定,因为保持一致通常比为某件事找到绝对最佳的名称更重要

使用Save或Persist会起作用,因为它们并不意味着任何关于前一个状态的信息

使用Create意味着该项不存在,即插入项

使用SaveOrUpdate可能会有些混乱,因为Update意味着该项已经存在,但Save并不意味着与状态有关的任何内容,因此它们重叠


也许InsertOrUpdate是另一种选择,或者CreateOrUpdate。这两种方法都可以作为Insert和Create,这意味着该项还不存在,而Update则意味着它确实存在,因此它们不会重叠。它们也比Save或Persist更精确,因为名称明确表示它们同时处理插入和更新。

查看.NET Framework,ConcurrentDictionary使用.AddOrUpdate()

查看.NET Framework,ConcurrentDictionary使用.AddOrUpdate()

+1该方法的实现方式与方法的使用者无关,名称应表示方法的结果。我会选择“保存”。+1它与方法的使用者无关,方法是如何实现的,名称应该表示方法的结果。我会选择“保存”。除非您计划编写单独的插入和更新函数,并且需要区分,否则我永远不会调用一个InsertOrUpdate。如果我这样做了,那么只有我在上面编写的Save函数内部使用的函数才能将其抽象出来。除非您计划编写单独的Insert和Update函数,并且需要区分,否则我永远不会调用一个InsertOrUpdate。如果我这样做了,它只会对我在上面写的Save函数内部使用的函数进行抽象。