EF7 DBContext的配置错误?

用户名

我试图弄清楚我的DBContext是否设置正确。我尝试做的Web应用程序正在使用ASP.NET 5,MVC6和EF7。

它连接到包含3个表(评论,评论,电影)的DB。这是我的模特

WebDbModel.cs

using Microsoft.AspNet.Identity.EntityFramework;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace WebExample.Models
{
    public partial class Comment : IdentityUser
    {
        public string CommentId { get; set; }
        public string ReviewId { get; set; }
        public string Author { get; set; }
        public System.DateTime Created { get; set; }
    }

    public partial class Review : IdentityUser
    {
        public string ReviewId { get; set; }
        public string Name { get; set; }
        public string Author { get; set; }
        public string Creator { get; set; }
        public string Status { get; set; }
        public Nullable<System.DateTime> CreatedOn { get; set; }
    }

    public partial class Film : IdentityUser
    {
        public string ReviewId { get; set; }
        public string FilmID { get; set; }
        public string CommentId { get; set; }
        public Nullable<int> CommentCount { get; set; }
        public string FilmName { get; set; }
        public virtual ICollection<Comment> Comments { get; set; }
        public virtual Review Review { get; set; }
    }
}

然后,我有一个名为

RegistrationDbContext.cs

using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.Data.Entity;

namespace WebExample.Models
{
    public class ApplicationUser : IdentityUser
    {
    }

    public class RegistrationDbContext : IdentityDbContext<ApplicationUser>
    {
        protected override void OnModelCreating(ModelBuilder builder)
        {
            base.OnModelCreating(builder);
            // Customize the ASP.NET Identity model and override the defaults if needed.
            // For example, you can rename the ASP.NET Identity table names and more.
            // Add your customizations after calling base.OnModelCreating(builder);
        }

        // Registration of the DB tables we are mapping.
        public DbSet<Comment> Comments { get; set; }
        public DbSet<Review> Reviews { get; set; }
        public DbSet<Film> Films { get; set; }
    }
}

我从这里想知道公共类ApplicationUser:IdentityUser的用途是什么?我不确定是否应该将其保留在其中...如果删除它,那么在我的Startup.cs中,以下代码将抱怨...

// Add Identity services to the services container.
services.AddIdentity<ApplicationUser, IdentityRole>()
        .AddEntityFrameworkStores<RegistrationDbContext>()
        .AddDefaultTokenProviders();

因此,鉴于我拥有CommentReviewFilm模型因此我不知道该用什么替代...

所以我的问题是...我想我可以删除ApplicationUser类(在创建解决方案时自动生成),因为这根本不是模型的一部分,但是...我应该放什么呢?

不太确定我的问题是否对,请您提前道歉!与MVC5,EF6相比,这似乎发生了很大变化,并且我对IdentityDbContext的文档了解过多

另外...我在RegistrationDbContext.cs类中缺少其他内容吗?我添加的唯一一件事是表的注册...默认情况下,其余部分都在类中。

谢谢!

马克E

这里有几个问题。

首先,IdentityUser是您网站登录用户的表示形式,默认情况下AspNetUsers是数据库中表示的形式,它存储了所有常用的内容,例如电子邮件地址,密码等。

ApplicationUser如果您想以任何方式进行扩展,则可以使用提供的子类。假设您要存储用户的出生日期:

public class ApplicationUser : IdentityUser
{
    public DateTime DateOfBirth { get; set; }
}

这将添加DateOfBirthAspNetUsers表格的

就您而言,如果您不希望以任何方式扩展默认用户表,则可以删除ApplicationUser该类,并将代码中的所有对它的引用替换为IdentityUser例如:

// Add Identity services to the services container.
services.AddIdentity<IdentityUser, IdentityRole>()
    .AddEntityFrameworkStores<RegistrationDbContext>()
    .AddDefaultTokenProviders();

其次,您的模型不应继承IdentityUser这样只会将AspNetUsers表格中的所有字段添加到每个模型中,这没有意义,因此请: IdentityUser从模型中删除

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

EF7错误插入默认日期

来自分类Dev

使用EF7和VNext访问DBContext

来自分类Dev

ASP.NET vNext EF7 dbContext问题

来自分类Dev

ASP.NET vNext EF7 dbContext问题

来自分类Dev

EF7 Beta 4:AddEntityFramework不接受参数(配置)

来自分类Dev

EF7使用SQLite生成错误的迁移

来自分类Dev

如何修复EF7中的此错误?

来自分类Dev

EF7 RC1无法识别术语'Scaffold-DbContext'

来自分类Dev

在MVC6和EF7的BaseController中初始化DbContext吗?

来自分类Dev

MVC 6 EF7 RC1创建多个dbcontext

来自分类Dev

在新配置下在EF7中切换ProxyCreation

来自分类Dev

在实体属性中使用NotMapped属性时,EF7添加迁移错误

来自分类Dev

当ASP.net Identity与相同的DbContext正常工作时,为什么EF7会说我没有配置任何提供程序?

来自分类Dev

注入新创建的DbContext(EF7,ASP.NET 5,vnext)后,注入的依赖项DbContext为空。

来自分类Dev

如何在asp.net core和ef7中的并行方法中使用注入的DbContext?

来自分类Dev

还有可能使用EF7将实体类型的配置放入外部类或函数中吗?

来自分类Dev

多对多EF7

来自分类Dev

在EF7中加载参考

来自分类Dev

EF7一对多映射

来自分类Dev

使用EF7的存储库模式

来自分类Dev

EF7不保存对象图

来自分类Dev

EF7一对多映射

来自分类Dev

使用EF7(EF Core)的UWP数据绑定

来自分类Dev

EF7加载列表中实体的子级

来自分类Dev

EF7投影不急于进行负荷收集

来自分类Dev

未填充EF7核心多对多引用对象

来自分类Dev

ChangeTracker.Entries()CurrentValue等于EF7中的OriginalValue

来自分类Dev

EF7和breeze.js-批量保存订单

来自分类Dev

这些模型可以在EF7中表示吗?