嗨,我在我的项目中遇到了这种情况,人们在其中对应用程序中主键列的值进行硬编码。这是一个好习惯。在处理环境时,该记录的值可能会更改,但是如何将标识插入其他环境中使用。

最佳答案

虽然这显然是非常糟糕的做法,但我在没有合理的推理信息的情况下犹豫拒绝这样的事情。我通常会给同事带来疑问的好处,并假设他们已经思考了问题并得出了合理的结论,而我只需要学习理解他们的推理即可。

在某些极少数情况下,可以使用硬编码的身份作为一个好的解决方案,例如,如果您的安装包还创建了数据库和架构,并植入了某些域查找值,因此它们在每个系统上都相同。在此类情况下,标识列定义的种子比平时要高一些(例如IDENTITY(100,1)),并且系统值始终位于种子下方(在这种情况下为100)。

例如,也许您有一个PhoneType的域表,并且值1-3保留用于“主”,“账单”和“联系”。同时,允许最终用户定义自己的电话类型的值100及更高。

在运行时适当的时候插入硬编码的身份值绝对是一种不好的做法,例如响应用户输入。在这种情况下,最好找一个自然键,使用GUID或开发自己的身份跟踪系统。

关于c# - 在应用程序中硬编码主键值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42444316/

10-09 09:09