实体框架代码优先 - 将两个字段合并为一个集合

2024-04-20

我有这个型号和配置

public class Person
 {
     public int? FatherId { get; set; }
     public virtual Person Father { get; set; }
     public int? MotherId { get; set; }
     public virtual Person Mother { get; set; }
     public virtual List<Person> Childs { get; set; }

 }
 class PersonConfiguration : EntityTypeConfiguration<Person>
 {
     public PersonConfiguration()
     {
         HasOptional(e => e.Father).WithMany(e => e.Childs)
              .HasForeignKey(e => e.FatherId);
         HasOptional(e => e.Mother).WithMany(e => e.Childs)
              .HasForeignKey(e => e.MotherId);
     }
 }

我在类型为初始值的情况下收到此错误。

指定的架构无效。错误:(151,6):错误 0040:类型 Person_Father 未在命名空间 ExamModel (Alias=Self) 中定义。

有没有办法映射Childs两个属性(motherId 和fatherId)的属性?


不可能将两个导航属性映射到单个集合属性。它看起来很可笑,但你必须有两个集合属性

public class Person
 {
     public int? FatherId { get; set; }
     public virtual Person Father { get; set; }
     public int? MotherId { get; set; }
     public virtual Person Mother { get; set; }
     public virtual List<Person> ChildrenAsFather { get; set; }
     public virtual List<Person> ChildrenAsMother { get; set; }
 }

 class PersonConfiguration : EntityTypeConfiguration<Person>
 {
     public PersonConfiguration()
     {
         HasOptional(e => e.Father).WithMany(e => e.ChildrenAsFather)
              .HasForeignKey(e => e.FatherId);
         HasOptional(e => e.Mother).WithMany(e => e.ChildrenAsMother)
              .HasForeignKey(e => e.MotherId);
     }
 }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实体框架代码优先 - 将两个字段合并为一个集合 的相关文章

  • 创建 DirectoryEntry 实例以供测试使用

    我正在尝试创建 DirectoryEntry 的实例 以便可以使用它来测试将传递 DirectoryEntry 的一些代码 然而 尽管进行了很多尝试 我还是找不到实例化 DE 并初始化它的 PropertyCollection 的方法 我有
  • 属性对象什么时候创建?

    由于属性实际上只是附加到程序集的元数据 这是否意味着属性对象仅根据请求创建 例如当您调用 GetCustomAttributes 时 或者它们是在创建对象时创建的 或者 前两个的组合 在由于 CLR 的属性扫描而创建对象时创建 从 CLR
  • 自动从 C# 代码进行调试过程并读取寄存器值

    我正在寻找一种方法来读取某个地址的 edx 注册表 就像这个问题中所问的那样 读取eax寄存器 https stackoverflow com questions 16490906 read eax register 虽然我的解决方案需要用
  • C++ 求二维数组每一行的最大值

    我已经设法用这个找到我的二维数组的每一行的最小值 void findLowest int A Cm int n int m int min A 0 0 for int i 0 i lt n i for int j 0 j lt m j if
  • 嵌入式系统中的malloc [重复]

    这个问题在这里已经有答案了 我正在使用嵌入式系统 该应用程序在 AT91SAMxxxx 和 cortex m3 lpc17xxx 上运行 我正在研究动态内存分配 因为它会极大地改变应用程序的外观 并给我更多的力量 我认为我唯一真正的路线是为
  • 将字符串从非托管代码传递到托管

    我在将字符串从非托管代码传递到托管代码时遇到问题 在我的非托管类中 非托管类 cpp 我有一个来自托管代码的函数指针 TESTCALLBACK FUNCTION testCbFunc TESTCALLBACK FUNCTION 接受一个字符
  • 使用 C# 在 WinRT 中获取可用磁盘空间

    DllImport kernel32 dll SetLastError true static extern bool GetDiskFreeSpaceEx string lpDirectoryName out ulong lpFreeBy
  • 使用 Google Analytics API 在 C# 中显示信息

    我一整天都在寻找一个好的解决方案 但谷歌发展得太快了 我找不到有效的解决方案 我想做的是 我有一个 Web 应用程序 它有一个管理部分 用户需要登录才能查看信息 在本节中 我想显示来自 GA 的一些数据 例如某些特定网址的综合浏览量 因为我
  • c 中的错误:声明隐藏了全局范围内的变量

    当我尝试编译以下代码时 我收到此错误消息 错误 声明隐藏了全局范围内的变量 无效迭代器 节点 根 我不明白我到底在哪里隐藏或隐藏了之前声明的全局变量 我怎样才能解决这个问题 typedef node typedef struct node
  • 当 Cortex-M3 出现硬故障时如何保留堆栈跟踪?

    使用以下设置 基于 Cortex M3 的 C gcc arm 交叉工具链 https launchpad net gcc arm embedded 使用 C 和 C FreeRtos 7 5 3 日食月神 Segger Jlink 与 J
  • .Net Core / 控制台应用程序 / 配置 / XML

    我第一次尝试使用新的 ConfigurationBuilder 和选项模式进入 Net Core 库 这里有很多很好的例子 https docs asp net en latest fundamentals configuration ht
  • A* 之间的差异 pA = 新 A;和 A* pA = 新 A();

    在 C 中 以下两个动态对象创建之间的确切区别是什么 A pA new A A pA new A 我做了一些测试 但似乎在这两种情况下 都调用了默认构造函数 并且仅调用了它 我正在寻找性能方面的任何差异 Thanks If A是 POD 类
  • Windows 窗体不会在调试模式下显示

    我最近升级到 VS 2012 我有一组在 VS 2010 中编码的 UI 测试 我试图在 VS 2012 中启动它们 我有一个 Windows 窗体 在开始时显示使用 AssemblyInitialize 属性运行测试 我使用此表单允许用户
  • 初始化变量的不同方式

    在 C 中初始化变量有多种方法 int z 3 与 int 相同z 3 Is int z z 3 same as int z z 3 您可以使用 int z z 3 Or just int z 3 Or int z 3 Or int z i
  • 实体框架 - 选择特定列并返回强类型而不丢失强制类型转换

    我正在尝试做类似的事情这个帖子 https stackoverflow com questions 1094931 linq to sql how to select specific columns and return strongly
  • C 中的位移位

    如果与有符号整数对应的位模式右移 则 1 vacant bit will be filled by the sign bit 2 vacant bit will be filled by 0 3 The outcome is impleme
  • AccessViolationException 未处理

    我正在尝试使用史蒂夫 桑德森的博客文章 http blog stevensanderson com 2010 01 28 editing a variable length list aspnet mvc 2 style 为了在我的 ASP
  • ListDictionary 类是否有通用替代方案?

    我正在查看一些示例代码 其中他们使用了ListDictionary对象来存储少量数据 大约 5 10 个对象左右 但这个数字可能会随着时间的推移而改变 我使用此类的唯一问题是 与我所做的其他所有事情不同 它不是通用的 这意味着 如果我在这里
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • 如何在 C# 中播放在线资源中的 .mp3 文件?

    我的问题与此非常相似question https stackoverflow com questions 7556672 mp3 play from stream on c sharp 我有音乐网址 网址如http site com aud

随机推荐

  • CSS 边距为负而不移动父容器

    我正在尝试进入此页面 http musicaladvocacy org http musicaladvocacy org 显示 Home 灰色渐变中的白色容器 的区域向上移动约 60 px 但正如您所看到的 它同时将父容器向上移动 我只是想
  • 单选按钮上的 jQuery .change()

    我一定在这里遗漏了一些明显的东西 我无法理解 改变 http api jquery com change 触发单选按钮 我有下面的代码here http bjmarine net test html
  • CSS 图像精灵

    使用CSS图像精灵的唯一好处是减少http请求吗 或者还有其他好处吗 还有一种简单的方法可以确定要显示精灵的哪个区域的时间吗 正如您所说 主要优点之一是减少对服务器的请求数量 提高响应时间 特别是在加载大量小图像时 但这并不是人们使用精灵的
  • 计算 R 中数值向量的位数

    我在 R 中有一个数字向量 c 0 9 0 81 我想提取该向量中每个元素的位数 该命令将返回 在这种情况下 1 and 2因为数字是9 and 81 有方便的方法吗 另外 如果结果是1 如何扩展到两位数 例如 我希望返回的向量是 c 0
  • 坚持/提交在 Spring JPA JUnit 的测试环境中不起作用

    我正在尝试设置基本的 JPA 插入测试 但数据库中没有保存任何内容 数据库是Postgresql Hibernate 用作持久性提供者 提前谢谢了 Entity public class Currency Id GeneratedValue
  • 使用 Node.js 中的 fast-csv 包读取和写入 CSV

    我正在尝试编写一个简单的节点程序 该程序读取 csv 文件 提取列 比如第二列 并将其写入另一个 CSV 文件 我正在将内容读取到数组中 然后将该数组写入文件 每一步的阶段和数据 输入文件 123 456 789 abc def ghi 2
  • 如果不创建插件,则无法在 eclipse 中使用 JFace 和 SWT

    免责声明 这是 NET GUI 试图解决 JAVA 问题的典型案例 问题描述 我正在尝试使用 JFace 和 SWT 构建一个非常简单的 GUI 代码很简单 有很多教程 但不那么简单的是我似乎无法让 JFace 和 SWT 在插件项目之外工
  • React 元标签不适用于 Facebook

    我已经克隆了该应用程序https github com alanbsmith react node example https github com alanbsmith react node example并尝试使用反应头盔 https
  • 使用ggplot2和facet_wrap显示不同的轴标签

    我有一个包含不同变量和不同单位的时间序列 我想在同一个绘图上显示它们 ggplot 不支持多轴 正如这里所解释的 https stackoverflow com questions 3099219 plot with 2 y axes on
  • Chart.getSelection() 无法与谷歌条形图正常工作

    drawBarChart function data few statements goes here which sets options which are being passed to chartDraw i e t options
  • 使用 PHP 查找给定字符串中所有可能的 2 个字母组合 [重复]

    这个问题在这里已经有答案了 我试图找到给定字符串的所有可能的 2 个字母组合 有没有比按位置应用子字符串然后再次调用该函数更快的方法 以下是我正在尝试的 function permute str if strlen str lt 2 ret
  • 创建 Java 泛型类时尖括号中的波形符意味着什么?

    我正在阅读一些 JMockit 示例并发现以下代码 final List
  • 同步访问双向链表

    我正在尝试在 pthreads 环境中用 C 实现一个 特殊类型的 双向链表 但仅使用 C 包装的同步指令 如原子 CAS 等 而不是 pthread 原语 列表的元素是固定大小的内存块 几乎肯定无法容纳pthread mutex t等等
  • 适用于不同屏幕尺寸和密度组合的可绘制文件夹

    可绘制文件夹有什么用 低密度 中屏 低密度 大屏幕 低密度 超大屏幕 中等密度 小屏幕 中密度 大屏幕 中等密度 超大屏幕 对于平板电脑 低密度 中屏 drawable ldpi 低密度 大屏幕 drawable large ldpi 低密
  • R 对对象列表进行排序

    我有一个对象 key value 对列表 例如 列表 预测 1 1 1 0000000 0 8564264 2 1 2 0000000 0 1980792 我想按每个元素的第二个组成部分降序排列此列表 意味着按 0 8564264 和 0
  • 如何在 JPA 查询中编写 MAX 和 OVER (PARTITION BY) 函数

    我需要根据另一列 绘图编号 获取一列 修订版 最大值 谁能告诉我此功能的 JPA 查询 我编写了以下查询 但该查询不起作用 请帮助我如何在 JPA 查询中编写 MAX 和 OVER PARTITION BY 函数 Query select
  • 为什么我的输入不适合 div?

    我写了这个html和css代码 HTML div div h1 Seek enjoy h1 h3 Your movie seeker h3 div div div div
  • 使用反射实例化不可变对象

    我创建了一个基类来帮助我减少 C 中不可变对象初始化的样板代码 我使用延迟初始化是为了尽量不影响性能 我想知道这样做对性能有多大影响 这是我的基类 public class ImmutableObject
  • HashLocation 策略有什么缺点吗?

    我目前正在学习 Angular 我已经使用 HashLocation 实现了路由器 因为 PathLocation 在 Apache 服务器中不起作用 我浏览了各种帖子来解决这个问题 但最终不得不选择 Apache 的 HashLocati
  • 实体框架代码优先 - 将两个字段合并为一个集合

    我有这个型号和配置 public class Person public int FatherId get set public virtual Person Father get set public int MotherId get s