使用C#Guid作为唯一的非主键字段

时间:2016-06-09 13:08:06

标签: c# entity-framework guid sql-server-express

我正在创建一个包含代码首次迁移的发票表,该表需要具有唯一的发票编号。我不想让这个字段成为我的主键。我首选的方法是使用Guid作为发票号,这样每次插入发票项时都会创建一个唯一值。我可以生成随机字符串,但我不想编写逻辑来创建随机字符串。

请注意,我不想为此安装任何外部库。 我正在使用Fluent API而不是Data Annotations进行映射。 请将这一点考虑在你的答案中。

这是否可以让我只使用Guid列?

提前致谢。

2 个答案:

答案 0 :(得分:0)

在SQL Server中定义表时,将列定义为uniqueidentifier NOT NULL DEFAULT newid()

答案 1 :(得分:0)

在您的发票类实体中,创建如下所示的列;

public Guid InvoiceNumber {get;set;}

使用

的构造函数
public Invoice(){
      InvoiceNumber = Guid.NewGuid();
}

在新建发票时,您应该预先填充Guid