【问题标题】:.NET Core Custom User Properties with EF and Code First使用 EF 和 Code First 的 .NET Core 自定义用户属性
【发布时间】:2019-12-25 15:44:26
【问题描述】:

我创建了一个测试项目,我在其中使用 .NET Core 2.2 和 Identity Framework 2.0。

我已经成功创建了一个项目并调整了一些字段,以便我了解数据是如何从View解析到Controller再到Stores

我一直在考虑自定义数据库,以便用户还包含一个ReferralID 来测试一些东西,这个ReferralID 是一个整数。

我所做的是用这个自定义属性扩展了IdentityUser,并为每个身份选项制作了一个自定义版本。

    public class ApplicationUsers : IdentityUser
    {
        public int? ReferralID { get; set; } = null;       
    }

我还在生成的表中将其添加到数据库中,但现在应用程序抛出错误:

CLR 属性“ReferralID”不能添加到实体类型“IdentityUser”,因为它是在 CLR 类型“ApplicationUsers”上声明的

很遗憾,我无法找到/理解问题所在,模型构建器似乎有问题,我没有接触模型构建器,它是使用脚手架自动生成的 Scaffold-DbContext "Data Source=(localdb)\mssqllocaldb;Initial Catalog=CoreTest;Integrated Security=True" Microsoft.EntityFrameworkCore.SqlServer -Context GolfScoresContext -OutputDir Models -DataAnnotations -Project WebApi -Force

我错过了哪一步?或者我不能向 IdentityUser 添加自定义属性吗?我看到有人为此苦苦挣扎并将[NotMapped] 添加到ApplicationUsers,但我认为我的财产不会得到保存。

【问题讨论】:

    标签: c# sql-server entity-framework-core


    【解决方案1】:

    我最终发现抛出它的原因应该是 HasKey 并且它不接受扩展模型。 (使用:Entity Framework Core Using multiple DbContexts) 我最终重新生成了修复它的模型,我认为OnModelCreating 中出现了一些问题,正如这里所建议的https://github.com/aspnet/EntityFrameworkCore/issues/9133

    【讨论】:

      猜你喜欢
      • 2018-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-13
      相关资源
      最近更新 更多