我们的数据库使用自动递增整数来存储主键字段。使用C#访问这些字段。最近我们遇到了开发人员使用错误的主键字段而没有彻底测试结果的问题。 e.g。
int systemUserID = 1234;
string companyName = company.getCompanyNameFromCompanyID(systemUserID);
正如您所料,这会导致返回错误的信息。我正在寻找的是一种解决方案,可以降低开发人员在使用主键字段时输入错误ID的能力。
单元测试是一种选择,但仅在进入的数据错误时才有效。 由于数据库大小和将要引入的错误,不能将主键字段更改为GUID。
以前有人见过这种方式并停止/限制它吗?
答案 0 :(得分:3)
问题是您在检索数据时是否让开发人员传递了错误的Id值? 我不知道如何在C#代码中阻止这种情况。您应该执行代码审查,通常会捕获这样的错误。另外,除非大多数开发人员缺乏经验且没有引起注意,否则我只是不知道这样的事情会成为您代码中的主要问题。更有理由进行代码审查。
答案 1 :(得分:0)
不完全确定你在问什么...
那么,您是否有开发人员正在编写您的软件并且他们会犯错,就像上面的示例一样? (寻找公司并向上下文发送userID而不是companyID)。
这是一个粗心的错误。解决粗心错误的唯一方法是找出原因。您的开发人员经验丰富吗?他们有动力吗?他们过度劳累了吗?
我认为这更像是一个人事问题,而不是技术问题。