【问题标题】:Code First Primary key auto increment with a prefixCode First 带前缀的主键自动递增
【发布时间】:2015-08-29 21:26:25
【问题描述】:

我有一个数据库问题。好吧,我不确定到底该怎么做。我在 mvc5 项目中使用 codefirst 方法。 目前我的表的主键是自动生成的并且它们会增加。例如。 customerid - 0,1,2,3 等。

我想知道,如何给这个 id 添加前缀,例如我希望它是 Cust0 而不是 0。

【问题讨论】:

  • 我认为没有任何数据库引擎支持该功能。基本上,自动身份只是为了方便,您并不真正关心身份(它不会用于搜索,......)。该身份通常也对用户隐藏并且从未出现过。如果要显示身份,也可以自己附加前缀。如果用户输入身份,您可以在查找之前去除前缀以获取实际身份。
  • 好的,我明白了。非常感谢你的朋友!这很有帮助

标签: mysql entity-framework ef-code-first code-first


【解决方案1】:

问题是你想要拥有这种“钥匙”的原因是什么?您可以为您的客户自动生成 ID 并创建您自己的属性:

public class Customer
{
   public const string CustomerPrefix = "Cust";

   [Key]
   public int Id {get; set;}

   [NotMapped]
   public string CustomerId 
   {
      get { return string.Concat(CustomerPrefix, Id)}
   }
}

顺便说一句:将 PK 作为字符串是非常糟糕的做法(因为性能原因)

【讨论】:

  • 我打算使用 id 作为发票的参考编号(我正在做一个贷款申请系统)。谢谢,这完全回答了我的问题朋友!
猜你喜欢
  • 1970-01-01
  • 2011-09-28
  • 2016-10-21
  • 1970-01-01
  • 1970-01-01
  • 2013-07-27
相关资源
最近更新 更多