EF Code First 迁移创建额外的外键

2023-12-19

我正在尝试创建一个Profile表与 Asp.Net Identity 表集成:AspNetUsers。我正在将 Code First 迁移与 EF 6.0 结合使用。

这是我的用户类:

public class ApplicationUser : IdentityUser
    {
        public ApplicationUser()
        {

        }


        public virtual string FirstName { get; set; }
        public virtual string LastName { get; set; }
        public UserStatus Status { get; set; }
        public virtual Profile Profile { get; set; }
    }

这是我的个人资料类:

public class Profile
    {
        public int ID { get; set; }
        public string ApplicationUserID { get; set; }
        public virtual ApplicationUser ApplicationUser { get; set; }
    }

我的 DataContext 中有配置:

modelBuilder.Entity<Profile>()
                .HasRequired<ApplicationUser>(m => m.ApplicationUser);

奇怪的是,当我运行迁移时,它会在数据库中创建 ApplicationUserID 和 ApplicationUser_Id ,而我想要的只是创建 ApplicationUserID 并将其用作外键列。如果我添加属性 AppliationUser_Id 它将添加 ApplicationUser_Id1。有人知道怎么修这个东西吗?

我想确保外键位于配置文件表上,即配置文件具有 ApplicationUserID 列,反之亦然,即我不希望 AspNetUsers 表具有 profile_ID 列。

附:我使用 Fluent API,而不是数据注释。


如果要配置一对一关系,实体框架要求依赖项的主键必须用作外键。

public class Profile
{
    public string ApplicationUserID { get; set; }
    public virtual ApplicationUser ApplicationUser { get; set; }
}

现在,关于 FK 约定,由于该限制,由于没有选择,Code First 只会为您推断 FK。

另一件事是,使用 Fluent Api 配置一对一关系的正确方法是:

modelBuilder.Entity<Profile>()
            .HasRequired<ApplicationUser>(m => m.ApplicationUser)
            .WithOptional(a=>a.Profile);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

EF Code First 迁移创建额外的外键 的相关文章

  • Rx.NET 中是否有一个Subject 实现,其功能类似于BehaviourSubject,但仅在值发生更改时才发出?

    有没有Subject https learn microsoft com en us previous versions dotnet reactive extensions hh229699 v vs 103 Rx NET 中的实现在功能
  • 转换 const void*

    我有一个函数返回一个const void 我想用它的信息作为char 我可以将它投射为 C 风格的罚款 char variable但是当我尝试使用reinterpret cast like reinterpret cast
  • 实体框架中的分页

    在实体框架中 使用 LINQ to Entities 数据库分页通常按以下方式完成 int totalRecords EntityContext Context UserSet Count var list EntityContext Co
  • MVC3中设置下拉列表中的所选项目

    我必须为视图中的下拉列表设置所选项目 但它不起作用 View div class editor label Html LabelFor model gt model Gender div div class editor field Htm
  • 传递 constexpr 对象

    我决定给予新的C 14的定义constexpr旋转并充分利用它 我决定编写一个小的编译时字符串解析器 然而 我正在努力保持我的对象constexpr将其传递给函数时 考虑以下代码 include
  • 无法注册时间触发的后台任务

    对于 Windows 8 应用程序 在 C Xaml 中 我尝试注册后台任务 很难说 但我想我的后台任务已正确注册 但是当我单击调试位置工具栏上的后台任务名称时 我的应用程序停止工作 没有任何消息 我查看了事件查看器上的日志 得到 具有入口
  • Task.Run 作为反模式?

    我正在将 SQLite NET PCL 库用于我的 WinRT 项目SQliteAsyncConnection类 它提供经典的异步版本SQLiteConnection方法 然而 就该项目而言Github页面 https github com
  • SecurityAction.RequestMinimum 在 .Net 4.0 中已过时

    最近 我们的 Net 客户端库正在升级以针对 Net 4 0 进行编译 将目标框架更改为4 0后 应用程序出现一些编译错误 In AssemblyInfo cs assembly SecurityPermission SecurityAct
  • 不同 C++ 文件中的相同类名

    如果两个 C 文件具有相同名称的类的不同定义 那么当它们被编译和链接时 即使没有警告也会抛出一些东西 例如 a cc class Student public std string foo return A void foo a Stude
  • 获取没有显式特征的整数模板参数的有符号/无符号变体

    我希望定义一个模板类 其模板参数始终是整数类型 该类将包含两个成员 其中之一是类型T 另一个作为类型的无符号变体T 即如果T int then T Unsigned unsigned int 我的第一直觉是这样做 template
  • 从 C# 使用 Odbc 调用 Oracle 包函数

    我在 Oracle 包中定义了一个函数 CREATE OR REPLACE PACKAGE BODY TESTUSER TESTPKG as FUNCTION testfunc n IN NUMBER RETURN NUMBER as be
  • 比较:接口方法、虚方法、抽象方法

    它们各自的优点和缺点是什么 接口方法 虚拟方法 抽象方法 什么时候应该选择什么 做出这一决定时应牢记哪些要点 虚拟和抽象几乎是一样的 虚方法在基类中有一个实现 可以选择重写 而抽象方法则没有 并且must在子类中被覆盖 否则它们是相同的 在
  • C++ 对象用 new 创建,用 free() 销毁;这有多糟糕?

    我正在修改一个相对较大的 C 程序 不幸的是 并不总是清楚我之前的人使用的是 C 还是 C 语法 这是在一所大学的电气工程系 我们 EE 总是想用 C 来做所有事情 不幸的是 在这种情况下 人们实际上可以逃脱惩罚 但是 如果有人创建一个对象
  • Visual Studio 2015:v120 与 v140?

    仅供参考 Win10 x64 我今天开始尝试 Visual Studio 2015 在弄清楚如何运行 C C 部分后 我尝试加载一个大型个人项目 该项目使用非官方的glsdk http glsdk sourceforge net docs
  • 为什么 0.5 mod 0.1 在不同的编程语言中结果不同?

    我有一个关于模数的问题 模运算求一个数除以另一个数的余数 我原本期望 0 5 0 1 0 的结果 但是当我在 PHP 或 net 中运行它时 我得到 0 1 我运行的 php 代码是 var dump fmod 0 5 0 1 在 net中
  • 将 Lambda 表达式树与 IEnumerable 结合使用

    我一直在尝试了解有关使用 Lamba 表达式树的更多信息 因此我创建了一个简单的示例 这是代码 如果作为 C 程序粘贴到 LINQPad 中 它可以工作 void Main IEnumerable
  • EntityFramework 6.0.0.0 读取数据,但不插入

    我创建了一个基于服务的数据库 folderName gt Add New Item gt Data gt Service based Database文件到 WPF 应用程序中 然后我用过Database First方法并创建了Person
  • Visual Studio 2015 EDMX 模型浏览器和图表丢失

    我最近更新到 Visual Studio 2015 打开我的解决方案并运行 直到我决定将一个实体添加到我的 edmx 中 因此 我双击 edmx 文件来打开图表 或者至少是模型浏览器 但它只打开一个 XML 页面 我检查了安装程序中任何丢失
  • 在 System.Type 上使用条件断点时出错

    这是函数 public void Init System Type Type this Type Type BuildFieldAttributes BuildDataColumns FieldAttributes 我在第一行设置了一个断点
  • 当用户更改 Windows 中的语言键盘布局时如何通知?

    I want to show a message to user when the user changes the language keyboard layout of Windows for example from EN to FR

随机推荐

  • 将多个对象放入 HttpParams

    我在表单控件中有一些类别 我将它们发送到一个字符串数组中 如下所示 1 4 6 这是我的实际代码 let categoryIds new Array
  • 重复播种随机数生成器是合理的哈希函数吗?

    我希望生成大量随机数据 这些数据对于给定的情况是可重现的key 包含一个数字列表 a b c d e 以下是让 RNG 进入生成随机数据的状态的好方法还是明智的方法 这样对于每个 n 元组 a b c n 该数据与 相邻 n 元组的输出不相
  • TFS2008到TFS2010迁移升级

    All 我目前正在尝试创建一个可重复的过程 将 TFS 2008 安装升级到新硬件 Microsoft 称为迁移升级 但在新硬件上构建 VS 2008 项目时遇到问题 我们的 TFS 2008 安装由两台机器组成 一个包含 SQL 数据库和
  • ChartJS - 具有多个环的圆环图

    是否可以使用 ChartJS 创建具有多个环的圆环图 如下所示 您可以在以下位置找到解决方案小提琴链接 https jsfiddle net zuupzpLL var ctx document getElementById chart ar
  • 如何知道用户何时将输出从 erlang shell 重定向到文件

    我有一个示例模块 module helloworld compile export all main gt io format s s s n e 31m Hello world e 0m 当我构建时 erlc helloworld erl
  • Django 模板对象类型

    好吧 这是我的情况 我有一组通用对象 我正在 django 模板中对其进行迭代 这些对象有许多子类 我想在模板中找出我正在处理的子类 这可能吗 可取吗 该代码可能看起来类似于 其中 if 语句包含一些虚构的语法 table tr th na
  • java.awt.Frame.setBackground() 在 OS X 中不起作用

    我正在尝试解决 OS X 中 java 小程序中的一些 UI 渲染错误 但我遇到了一个我无法解决的问题 我们打开的所有扩展 java awt Frame 的窗口似乎都忽略了 setBackground 调用 而是使用 OS X 默认值 拉丝
  • 根据日期精度设置日期格式

    我正在使用维基数据查询服务来获取某些地方的人口日期 输出给出以下格式的原始结果2010 01 01T00 00 00Z 举个例子 我还检索了每个日期的日期精度 这query https query wikidata org SELECT 2
  • 你可以*仅仅*用闭包修补一个嵌套函数,还是必须重复整个外部函数?

    我们使用的第三方库包含一个相当长的函数 该函数在其中使用了嵌套函数 我们对该库的使用触发了该函数中的错误 我们非常希望解决该错误 不幸的是 库维护者的修复速度有点慢 但我们不想分叉该库 在他们解决问题之前 我们也无法暂缓发布 我们更愿意使用
  • Android Studio Java 文件未找到异常

    我尝试了我能想到的所有可能的路径组合以及文件的每个可能的位置 它根本不会停止寻找文件未找到异常 没有文件或目录 try String path D Users UserName Desktop NameofProject app src m
  • Jquery:如何睡眠或延迟?

    我想向上移动对象 延迟1000ms 然后隐藏它 我得到代码 test animate top 80px 1500 animate top 0px 1000 animate opacity 0 500 我使用 animate top 0px
  • Ionic/Cordova:如何将 Cordova 插件集成到现有的 Ionic 项目中?

    我有一个 Ionic 项目 需要 Cordova Camera 插件 我现在已成功安装 但在我的项目中 Camera API 仍然不可用 即抛出错误 ReferenceError Camera is not defined at Scope
  • Neo4j 2.0.1 graphstyle.grass 用于多个标签

    我很难为具有多个标签的节点设置属性 我的 graphstyle grass 文件如下所示 node diameter 40px color aaaaaa border color 888888 border width 1 5px text
  • 使用带有 while 循环的递归的奇怪结果

    我是 Javascript 的初学者 当我自己尝试递归时 我使用 while 循环得到了一些奇怪的结果 并且使用 If 语句得到正确的结果 这是代码和结果 var test function f n while n gt 0 documen
  • 使用 Python 在 Power BI 中自定义视觉对象

    我正在尝试为 Python 复制这个 但找不到任何答案 是否可以在Power BI的R Script Visual中使用R Plotly库 https stackoverflow com questions 39368729 is it p
  • 在 Windows 窗体中调用 Font 的 dispose()

    我遇到了与中描述的相同的问题这个问题 https stackoverflow com questions 21769908 how and when is font disposed for winforms controls 也就是说 F
  • 如何在 Magento 中获取商店安全 URL?

    我在 Magento 中有一个表单 显示在不安全的 URL http 上 但我需要它提交到安全 URL https 我显示当前使用以下代码的 URL Mage getBaseUrl Mage Core Model Store URL TYP
  • 分布式Python编程

    我试图将 python 程序的执行拆分到两台不同的机器上 我想知道是否有办法从一台机器上调用另一台机器上的 python 解释器 不是在另一台机器上运行脚本 而是将执行任务拆分到两台机器上 在接下来的几个月中 我将教授我的自分布式编程 我认
  • 403 使用 Sig v4 将数据从 AWS Lambda 索引到 Elasticsearch 时出错:“没有 [indices:data/write/bulk] 权限”

    我的函数可以从本地 Jupyter 笔记本将单个文档和批量索引到我的 AWS Elasticsearch 但是当我部署到 Lambda 时 它不断返回此错误 errorMessage AuthorizationException 403 s
  • EF Code First 迁移创建额外的外键

    我正在尝试创建一个Profile表与 Asp Net Identity 表集成 AspNetUsers 我正在将 Code First 迁移与 EF 6 0 结合使用 这是我的用户类 public class ApplicationUser