实体类型'Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityUserLogin <string>'需要定义密钥

时间:2016-09-05 13:07:59

标签: c# asp.net-mvc asp.net-identity

一切正常,直到我介绍身份。

我将上下文类改为:

public partial class VisualJobsDbContext : IdentityDbContext<ApplicationUser>
{
    private IConfigurationRoot _config;

    public VisualJobsDbContext() { }

    public VisualJobsDbContext(IConfigurationRoot config, DbContextOptions options) : base(options)
    {
        _config = config;
    }...

我有一个以表格形式声明的Generic存储库:

public abstract class GenericRepository<C,T> : IGenericRepository<T> where T : class where C : IdentityDbContext<ApplicationUser>, new() 
{
    private C _entities = new C();
    private VisualJobsDbContext context;
    private DbSet<T> dbSet;

    public GenericRepository(VisualJobsDbContext context)
    {
        this.context = context;
        this.dbSet = context.Set<T>();
    }....

错误发生在

  

this.dbSet = context.Set&lt;&gt;();

它第一次被击中。我的OnModelCreating方法确实被调用了。我试图从我的MVC应用程序访问的页面不需要登录,因为它是一般页面,但是会有需要登录的区域。但是,在错误之前,我没有得到我的控制器Constructor方法。注册我的服务:

services.AddIdentity<ApplicationUser, IdentityRole>()
            .AddEntityFrameworkStores<VisualJobsDbContext>()
            .AddDefaultTokenProviders();

我可以踩到这个。

我缺少什么想法?我看过这个stackoverflow answer和其他人,但它并没有真正帮助

1 个答案:

答案 0 :(得分:7)

在我的OnModelCreating方法中。我需要将<a href="#"> <span><img src="images/brand/pgblocks-logo-white-nostrap.png" class="brand-img img-responsive"></span> <span><h3>... Because h3 is a block element</h3></span> </a> <a href="#"> <span><img src="images/brand/pgblocks-logo-white-nostrap.png" class="brand-img img-responsive"></span> <span>Span is an inline element</span> </a>作为我的第一行代码。