小编Dav*_*idM的帖子

ASP.NET标识 - 将用户ID主键默认类型从字符串更改为int时和使用自定义表名时出错

我正在使用Microsoft.AspNet.Identity 2.0.0-beta1和Entity Framework 6.1.0-beta1(2014年2月11日发布).

我收到以下错误,当我试图改变从字符串用户ID主键的默认类型为int 当我尝试使用自定义表名(所以User.MyUsers而不是dbo.AspNetUsers):

" 实体类型'IdentityUser'和'ApplicationUser'不能共享表'MyUsers',因为它们不在同一类型层次结构中,或者没有有效的一对一外键关系,它们之间具有匹配的主键. "

我可以成功地从字符串更改用户ID PK的默认类型为int或更改默认标识表的名称,但我不能两者都做在一起,没有击中这个错误.

我的解决方案基于:

1:从http://blogs.msdn.com/b/webdev/archive/2013/12/20/announcing-preview-of-microsoft-aspnet- "让用户和角色的主键类型可扩展"部分identity-2-0-0-alpha1.aspx.

2:如何在使用Visual Studio 2013 ASP.NET标识时更改表名?.

我的实际代码是:

using Microsoft.AspNet.Identity.EntityFramework;

namespace Musetone.Models
{
public class ApplicationUser : IdentityUser<int, CustomUserLogin, CustomUserRole, CustomUserClaim>
{
}

public class CustomRole : IdentityRole<int, CustomUserRole>
{
    public CustomRole() { }
    public CustomRole(string name) { Name = name; }
}

public class CustomUserRole : IdentityUserRole<int> { }
public class CustomUserClaim : IdentityUserClaim<int> { }
public class CustomUserLogin : …
Run Code Online (Sandbox Code Playgroud)

ef-code-first entity-framework-6 asp.net-identity

7
推荐指数
1
解决办法
6453
查看次数