我想知道是否有可能拥有像这样自动生成的密钥:
我现在在班上有这个,ID是自动编号的ID:
[Key]
public int Id { get; set; }
public DateTime Date { get; set; }
public string Code { get; set; }
public string Name { get; set; }
但是我希望这个数字是关键&格式:Code_Year_Id:
[Key]
public string Number { get; set; }
public DateTime Date { get; set; }
public string Code { get; set; }
public string Name { get; set; }
有人可以帮我这个吗? 或者有没有人提供有用的文档,可以为我提供合适的解决方案?
在我保存新项目之前,我可以自己创建一个号码(在代码中),但可能有2个人同时保存一个新项目,我不希望在重复键上出现异常..
Zarkos
答案 0 :(得分:2)
通常,为密钥使用有意义的值是个坏主意。使用顺序值会更好,他的唯一目的是确保参照完整性。如果不是出于其他原因:如果您的密钥不是顺序的,那么当您插入新记录时,您将在索引上获得大量碎片。
如果您确实希望获得唯一值,可以创建一个保存最后一个值的SQL表,然后创建一个获取该表中当前值的UDF或sproc,将其递增到下一个值然后返回该值。