首页 > 解决方案 > 来自单独数据库的实体框架核心外键

问题描述

由于我还是一名学生,因此我对 EF Core 和数据库一般来说是新手。我正在制作的项目中要求从应用程序数据库中拥有一个单独的身份数据库。

我已经使用带有一些自定义属性的 ASP.NET Core Identity 设置了身份数据库。我正在整理另一个数据库来存储联系页面的票证,由于某种原因,我似乎无法让外键正常工作。当我迁移新数据库时,它会在我的应用程序数据库中为我已经在 Identity 数据库中自定义的 Identity 类创建一个重复的表。

我想知道如何防止这种情况以及它是否与外键有关,因为我在网上找到的信息似乎表明 EF Core 2.1 不支持这种情况

模型中的身份类:

using Microsoft.AspNetCore.Identity;

namespace WebTemplate.Models
{
    public class Identity : IdentityUser
    {
        public string Building { get; set; }
        public string Room { get; set; }
        public string FullName { get; set; }
    }
}

模型中的ContactForm类:

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace WebTemplate.Models
{
    public enum StatusCode
    {
        [Display(Name="Open")]Open,
        [Display(Name = "Under Review")] UnderReview,
        [Display(Name = "Pending Change")] PendingChange,
        [Display(Name = "Closed-Resolved")] Resolved,
        [Display(Name = "Closed-No Action")] NoAction
    }

    public class ContactForm
    {
        [Key]
        public int ContactFormId { get; set; }
        public string SenderId { get; set; }
        [ForeignKey("SenderId")]
        public Identity Sender { get; set; }
        public string Subject { get; set; }
        public string Content { get; set; }
        public StatusCode Status { get; set; }
    }
}

AppIdentityDbContext

//removed for brevity
namespace WebTemplate.Models
{
    public class AppIdentityDbContext : IdentityDbContext<Identity>
    {
        public AppIdentityDbContext(DbContextOptions<AppIdentityDbContext> options) : base(options) { }
        //Seed Data removed for brevity
    }
}

应用程序上下文

//removed for brevity
namespace WebTemplate.Models
{
    public class ApplicationDbContext : DbContext
    {
        public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options) { }
        public DbSet<ContactForm> ContactForms { get; set; }
    }
}

标签: c#asp.net-core-mvcrelational-databaseasp.net-core-2.0entity-framework-core-2.1

解决方案


推荐阅读