C# 命名方法时,SAVE/CREATE/PERSIST之间的区别是什么?
假设您在服务器端的一个实体存储库中有一个方法 此方法在数据库中插入或更新Foo实体 您需要命名这个方法 从命名约定的角度,您能否解释这些名称之间的差异(如果有):C# 命名方法时,SAVE/CREATE/PERSIST之间的区别是什么?,c#,.net,crud,C#,.net,Crud,假设您在服务器端的一个实体存储库中有一个方法 此方法在数据库中插入或更新Foo实体 您需要命名这个方法 从命名约定的角度,您能否解释这些名称之间的差异(如果有): SaveFoo(Foo-Foo) PersistFoo(Foo-Foo) CreateFoo(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函数内部使用的函数进行抽象。