Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 分配唯一id,并用作密钥。asp.NETMVC模式_C#_Asp.net Mvc_Model - Fatal编程技术网

C# 分配唯一id,并用作密钥。asp.NETMVC模式

C# 分配唯一id,并用作密钥。asp.NETMVC模式,c#,asp.net-mvc,model,C#,Asp.net Mvc,Model,我正在用ASP.NET MVC创建一个注册表单,我想为每个新条目分配一个ID,并将其用作主键 我已经开始用名字、姓氏、电话等创建我的模型 所以我的问题是如何在我的模型中写下这个 [Required(ErrorMessage = "Field is missing")] [StringLength(20, MinimumLength = 1)] public string FirstName { get; set; } .... [Key] When new entry is created,

我正在用ASP.NET MVC创建一个注册表单,我想为每个新条目分配一个ID,并将其用作主键

我已经开始用名字、姓氏、电话等创建我的模型

所以我的问题是如何在我的模型中写下这个

[Required(ErrorMessage = "Field is missing")]
[StringLength(20, MinimumLength = 1)]
public string FirstName { get; set; }

....

[Key]
When new entry is created, assign a Unique ID. 


或者这是控制器应该解决的问题,例如,可以创建一个键和一个“int PersonID”?

如果使用数据库优先方法,则可以定义Id integer并设置为Identity=Yes 因此,数据库会自动增加Id。在此方法中,您可以如下定义Id:

public string Id { get; set; }
或者,如果要使用“代码优先”方法:

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;


[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }

为什么不使用内置标识框架?这应该能解决所有的问题。无论如何,对于自定义模型,您可以使用GUID作为键,并将新GUID分配给构造函数上的键。出于学习目的,我正在尝试自己编写尽可能多的GUID:)好的,我将尝试读取GUID。谢谢您您可以使用
[数据库生成(DatabaseGeneratedOption.Identity)]
标记您的属性。看见