2013-10-26 76 views
2

身份管理器用戶Guid但數據庫類型仍然是字符串?這顯然是有意義的,如果你想使用不支持uniqueidentifier類型的數據庫..但是如果我們需要使用GUID?GUID但不是真GUID

有什麼辦法可以修改數據庫類型爲uniqueidentifier?我成功地重新命名我的表「用戶」,但與HasColumnType同樣的伎倆does not工作使用GUID

我曾嘗試:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
{ 
    public ApplicationDbContext() 
     : base("DefaultConnection") 
    { 
    } 

    protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder) 
    { 
     base.OnModelCreating(modelBuilder); 
     modelBuilder.Entity<IdentityUser>() 
      .ToTable("Users", "dbo").Property(p => p.Id).HasColumnType("uniqueidentifier"); 
     modelBuilder.Entity<ApplicationUser>() 
      .ToTable("Users", "dbo").Property(p => p.Id).HasColumnType("uniqueidentifier"); 
    } 
} 
+0

能否請您給例如數據庫,它不支持GUID類型的? –

+1

舊版本的Access?或mySQL? –

回答

0

這可能不是一個直接的解決你的問題,但至少隧道盡頭有光線:Asp.net Identity 2.0.0-alpha1 has recently been announced的預覽。

之一的新功能是主鍵類型用戶和角色的可擴展性:

在1.0 PK的用戶和角色的類型爲字符串。這意味着當ASP.NET Identity系統在使用實體框架的Sql Server中持久化時,我們使用的是nvarchar。圍繞Stack Overflow的這個默認實現進行了很多討論,並且基於傳入的反饋,我們提供了一個擴展鉤子,您可以在其中指定應該是用戶和角色表的PK。如果您正在遷移您的應用程序,並且應用程序正在存儲UserIds是GUID或整數,則此擴展鉤子特別有用。

你可以閱讀更多關於釋放和如何得到它公佈後:Announcing preview of Microsoft.AspNet.Identity 2.0.0-alpha1