Shi*_*rma 8 c# sql-server asp.net asp.net-mvc entity-framework
当我们运行ASP.NET应用程序并注册用户时,Entity Framework会自动在AspNetUser表中设置唯一ID(PK):
除了已启用标识的AspNetUserClaims之外,其他AspNetRoles,AspNetUserLogins,AspNetUserRoles也是如此.
任何人都可以解释实体框架如何创建这个唯一的ID吗?如果我们想要在EF中创建我们自己的表,并禁用身份,我们将如何为主键生成这种Id?
PMe*_*let 23
此唯一ID由SQL Server在插入时创建.
如果要让SQL Server在插入时生成值,则必须在模型中使用以下属性:
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public Guid Id { get; set; }
Run Code Online (Sandbox Code Playgroud)
或者,如果您想自己管理Id,只需生成它:
var id = Guid.NewGuid();
Run Code Online (Sandbox Code Playgroud)
GUID Entity Framework
既不是由生成也不是由生成SQL
.它由Identity框架处理.只需导航到IdentityModels.cs
public class ApplicationUser : IdentityUser
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
此类继承自Microsoft.AspNet.Identity.EntityFramework.IdentityUser
此类的构造函数,定义为(Source)
public IdentityUser()
{
Id = Guid.NewGuid().ToString();
}
Run Code Online (Sandbox Code Playgroud)
因此GUID是在构造函数中生成的.对于其他Identity表也是如此.
注意:Id Field varchar (string)
位于数据库中.
归档时间: |
|
查看次数: |
23620 次 |
最近记录: |