在数据库

时间:2015-09-15 15:38:32

标签: c# entity-framework linq logic

我正在开发销售点系统,该系统使用唯一的字母数字UPC代码作为数据库中的标识列。允许用户输入他们想要的任何字母数字UPC代码。我想使用C#和Linq to Entity为UPC实现自动生成选项,但是在逻辑上遇到了一些问题。我试图将其纳入A0000000010'的格式,其中' A'表示产品类型,后面的数字是随机的,或者是一个计数的数字,它们真的不重要。这是我的基本架构

productID  |  description  |  UPC
   1       |   ItemNum1    | 12345
   2       |   ItemNum2    | ABCDE

我可以轻松地创建一个随机数并将其附加到该字母,然后检查它是否存在于数据库中,如果确实存在,请再次尝试,一次又一次,但是一个强力方法似乎可能需要很长一段时间,所以我想避免这种情况。

我还以为我可以抓住最后一个productID列(在这种情况下是2),递增它(现在它是3),附上必要的0(0000000003),然后附上正确的字母(A0000000003),但由于用户可以手动或通过扫描创建自己的UPC,因此他们可以轻松输入UPC,例如A0000000015'这将影响到这一点。

为了解决这个问题,我可以做一些事情,如果UPC已经存在,减少id(因此A0000000003将变为A0000000002),然后再次尝试,再次,再次,现在我们又回到了蛮力方法,虽然速度快得多。

我的问题是:有没有办法,使用C#和Linq to Entity,生成一个保证不存在于数据库中的字符串?

0 个答案:

没有答案