实体框架多对多关系

2023-12-10

好吧,我正在尝试弄清楚如何正确设置我的数据库。

我有两节课:

public class Event
{
    public int EventId { get; set; }
    public string EventName { get; set; }
}

and

public class Dog
{
    public int DogId { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}

一个事件必须能够包含一组狗。 每只狗都必须能够参加任何活动。 我猜这就是他们所谓的多对多关系,但我现在不知道如何使用密钥等设置它。我希望我足够清楚我希望实现的目标。

我昨天问了类似的问题,但当时我不清楚我需要什么:将对象列表作为外键.

Thanks!


是的,这就是 N:N 关系。假设 Code First,更改您的实体:

public class Event
{
    public Event()
    {
       Dogs = new HashSet<Dog>();
    }
    public int EventId { get; set; }
    public string EventName { get; set; }
    public virtual ICollection<Dog> Dogs { get; set; }
}

public class Dog
{
    public Dog()
    {
       Events = new HashSet<Event>();
    }
    public int DogId { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
    public virtual ICollection<Event> Events { get; set; }
}

和你的OnModelCreating:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
  modelBuilder.Entity<Dog>()
    .HasMany(d => d.Events)
    .WithMany(e => e.Dogs)
    .Map(m =>
    {
       m.MapLeftKey("DogId");
       m.MapRightKey("EventId");
       m.ToTable("DogEvent");
    });
}

然后这应该创建一个连接表DogEvent只需两个外键,DogId and EventId

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

实体框架多对多关系 的相关文章

  • ASP.Net 异步 HTTP 文件上传处理程序

    我正在尝试在 C 中创建一个异步文件上传处理程序 并且可以通过 AJAX 异步请求提供有关文件进度的更新 基本上 如果请求是 POST 它会将一些信息加载到会话中 然后开始上传 如果请求是 GET 它会返回上传的当前状态 上传的字节数 总字
  • c#/asp.net - 如何捕获“System.Web.HttpException:请求超时”?

    在我的 asp net c 项目中 我使用 iTextsharp dll 从许多 pdf 文档中读取文本 但有时会出现此错误 System Web HttpException 请求超时 但实现它的代码是 public static bool
  • 如何在日历中选择多个日期并将其显示在标签中

    假设我有日历 并且我想选择多个日期并在标签中显示 我使用了以下代码 但它无法正常工作 请更正 lblMultipleDate Text Calendar1 SelectedDates 0 ToShortDateString Label2 T
  • DetailsView 事件“ItemUpdating”中的 OldValues 集合始终为空

    我正在使用DetailsView 但更新时 我无法获取OldValues 因为ItemUpdating 事件的DetailsViewUpdateEventArgs OldValues 始终为空 NewValues 的值正常 注意 我没有在应
  • Page.AsyncTimeout - 无休止的超时?

    I saw 一个例子 http www webreference com programming javascript rg30 index html of forever iframe实现 彗星模拟 所以我决定测试它 但添加了异步方法 这
  • 从异步方法同步调用 CPU 密集型方法的混乱

    我正在尝试 NET 4 5 的 async await 结构 我正在开发 RESTful Web API 解决方案 我试图弄清楚如何处理 CPU 绑定操作 1 从当前线程同步调用它 或 2 使用Task Run 让我们使用这个例子page
  • MVC4 - ContextDependentView - 是什么意思?

    我刚刚开始使用 MVC4 我看到的第一个操作方法有一些新内容 我查了一下互联网 找不到任何关于此的信息 public ActionResult LogOn return ContextDependentView 有谁知道 ContextDe
  • 使用左连接获得不适当的输出

    我正在尝试获取变体列表 并且对于每个变体都获取所有subvariants list无论子变体属于何处 特别的Test say 100 这是示例数据 Id TestId SourceSubVariantId TargetSubVariantI
  • 盒式捆绑包与 MVC4 捆绑包

    我目前正在开发一个原型 ASP NET MVC 3 解决方案 该解决方案将用作多个项目重写的基础 来自 Web 表单 我的目标之一是跨应用程序实现一些脚本管理 而不是我们目前没有的目标 MVC 3有一个缺陷恕我直言 如果您需要在部分视图或模
  • ASP.NET MVC2:“System.MissingMethodException:没有为此对象定义无参数构造函数。”

    我目前正在尝试修改默认 MVC 项目的注册组件 以适应我的项目 为此 我修改了 RegisterModel Register aspx 和 AccountController 我可以很好地查看寄存器视图 但是当我提交时 我在标题中收到错误
  • 从数据库配置中的连接字符串中删除 SSIS 密码

    我有一个 SSIS 包 它使用 SQL 服务器中的 SSIS 配置表来检索 OLE DB 连接管理器的连接字符串属性 问题是我还需要相同的连接字符串来调用使用实体框架的程序集 我尝试访问连接管理器连接字符串属性 但 SSIS 总是删除密码
  • 如何使用实体框架设置连接字符串

    我将 EF6 与 MySQL 结合使用 并有一个用于多个数据库的模型 我希望能够在我的表单中设置连接设置 如何以编程方式设置模型的连接字符串 你应该使用EntityConnectionFactory这就是您所需要的 public strin
  • 无法成功启动或连接到 MSBuild.exe 子进程。验证 MSBuild.exe

    我第一次遇到这种情况 运行构建并收到此错误 当我重建其他sln一切正常 错误 1 由于内部故障 构建意外停止 Microsoft Build Exceptions BuildAbortedException 构建已取消 无法成功启动或连接到
  • OnModelCreating 从未被调用

    我开始使用实体框架 问题是我的 OnModelCreating 方法从未被调用 这是我的上下文类 public class TestContext DbContext public TestContext base name TestDBC
  • SQL Server Express 到 .mdf 文件的连接

    两部分问题 我使用 VS 2015 Update 3 创建了一个 ASP NET MVC 5 应用程序 我在本地计算机上完成了该项目 突然 我无法再通过 SQL Server 对象资源管理器连接到 mdf数据库文件并出现以下错误 无法打开数
  • ASP.NET Web Api 的事件发布者

    我已经开始使用微服务 我需要创建一个事件发布机制 我计划使用 Amazon SQS 这个想法很简单 我将事件存储在与聚合相同的事务中的数据库中 如果用户更改他的电子邮件 事件UserChangedEmail将被存储在数据库中 我还有事件处理
  • 如何使用 LINQ 获取唯一 id 列的最大值

    如何使用 LINQ 以最简单的方式编写此代码 SELECT MAX Game id AS MaxValue FROM Dim Game Try context Dim Games Max g gt g Game id
  • 如何在服务器上保存用户凭据以在后台运行查询

    背景 我们有一个 ASP NET Silveright Web 应用程序 silverlight客户端显示用户 图形形式的特定数据 它从服务器请求数据 问题 由于服务器必须执行底层数据库查询 获取这些数据的成本很高 因此客户端必须等待 优化
  • asp.net cookie、身份验证和会话超时

    我有一个使用表单身份验证的 asp net 网站 我在会话中保留一些信息 例如用户名 用户 ID 电子邮件等 我通过在身份验证 cookie 上设置较长的到期日期来允许用户保持登录网站的状态 因此 当用户仍处于身份验证状态时 会话过期的情况
  • 如何在种子实体框架版本 6.x 中通过 AddOrUpdate 方法插入身份[重复]

    这个问题在这里已经有答案了 我有一个具有身份列的实体 作为数据种子的一部分 我想对系统中的 标准数据 使用特定的标识符值 我不想禁用身份 只有我想在迁移种子中设置 IDENTITY INSERT ON 我的代码是 protected ove

随机推荐

  • 运行 1 个自定义 shell 脚本冻结中的 1 个

    我正在构建一个框架 同时尝试使用自定义 shell 脚本代码编译用于生产的框架 它在这一步冻结了 这是自定义 shell 脚本代码 define output folder environment variable UNIVERSAL OU
  • 托管 bean 的多个实例

    我正在使用 prime faces 选项卡来显示多个输入表单 问题是 有时我需要实例化 2 个相同的形式 当然 它们都使用相同的托管 Bean 这会导致第一个初始化表单的输入用相同的数据覆盖另一个表单 我需要能够在每个表单中放入不同的数据并
  • MySQL 从两个表中使用 JOIN 选择随机行

    几天来我一直在寻找这个问题的解决方案 但找不到任何可以减少运行查询所需时间的方法 我有 2 张桌子 product db unique id index image url title status index product page i
  • 夏令时导致 Firefox 上的 jQuery UI 日期选择器出现问题

    我在 Firefox 上使用 jQuery UI 日期选择器时遇到问题 我正在开发一个基于未来日期时间表的系统 我注意到 2016 03 31 是星期四 这是正确的 但 2016 04 01 也是星期四 而它应该是星期五 该问题出现在桌面版
  • 在 Nhibernate 中使用 Doctype

    您好 我正在尝试将基类的通用属性保留在一个位置 并使用 XML ENTITY 在 Nhibernate 映射文件中引用 映射文件 gt
  • 使用PostgreSQL触发器动态审计数据

    我有兴趣在现有 PostgreSQL 数据库中使用以下审核机制 http wiki postgresql org wiki Audit trigger 但是 希望 如果可能的话 进行一项修改 我还想记录 Primary key 的值 以便稍
  • 表示 Django 模板中的对象树

    我有一个 Django 模型 它具有同一个类的外键 有效地创建了一棵树 class Tag models Model name models CharField max length 50 parent models ForeignKey
  • 使用 UITextField 的属性文本

    我正在尝试将属性文本与 UITextField 一起使用 我已经自定义了占位符文本 但它忽略了我为主文本属性设置的值 nameTextField attributedText NSAttributedString string attrib
  • 在 Javascript (Angular) 中读取、更改和保存文档

    我需要读取文件 doc 然后替换 doc 中的一些数据 然后发送到打印 doc 或 pdf 第一步 我尝试从文档中读取数据 从 txt 可以正常工作 但从 doc 不行 我在 jsfiddle 中做了例子http jsfiddle net
  • 从命令行编译

    我试图了解该选项的工作原理 classpath从命令行编译时 我尝试从父母那里mydirectory javac cp mydirectory subdir Hello java 但编译器说 javac 没有源文件 如何 cp classp
  • 如何创建动态分配的对象数组而不使用默认构造函数?

    动态创建的对象数组需要使用非默认构造函数 我认为遇到的问题是语法 在我看来 事实上我能够做到这一点 int somePtr new int 5 意味着我应该能够做到这一点 IntegerSet someSet new IntegerSet
  • 已保存实例状态返回 null

    有人可以解释为什么我的savedInstanceState 中的值为空吗 我有 3 个小部件 一个 EditText Button 和 TextView 该人输入他们想要的内容 该短语会在 TextView 中弹出 我想在翻转手机时保留输入
  • 将 php 数组重新排列为嵌套的分层数组

    如何使用 php 将 array 1 转换为 array 2 结构 第一个数组是对生物体列表进行数据库查询的结果 每个生物体都按其目 科 属 种进行分类 从层次上讲 物种是各种属的子分类 属分类是各种科的子分类等 在命名空间术语中 您可以像
  • 我如何通知用户有关 django 中的 webhook

    您好 我在 django 中遇到了网络挂钩问题 我需要一种方法来通知用户他 她已成功付款 通过向我的处理器添加 URL 来向我的网络发送付款成功请求 我会收到有关成功网络挂钩的通知钩子如何向用户显示它以通知其是否成功 我的代码是 这是用户将
  • 使用自定义语法显示 Haskell 元组列表

    我有一个元组列表 1 a yes 2 b no 3 c ok 我如何以以下形式显示此列表作为输出 1 a yes 2 b no 3 c ok 看起来您想要进行的转换是去掉引号字符 如果是 则过滤调用结果show你的数据就足够了 gt let
  • 响应式 Durandal 对话框

    我在新应用程序中使用 Durandal 但 Durandal 的对话框窗口存在问题 我使用它从用户那里获取一些数据 当我手动设置窗口宽度时 默认情况下 Durandal 从 JavaScript 设置窗口位置 如果我想要窗口宽度为 600p
  • 如何对数据库模式进行版本控制? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 您如何准备 SQL 增量 您是否手动将每个模式更改 SQL 保存到增量文件夹中 或者您是否有某种自动比较过程 我对版本控制数据库模式以及源代码的约定感兴趣 也许是一个区分模式的预提交挂钩
  • 从字符串中提取所有数字

    假设我有一个字符串 例如123ad456 我想创建一种将数字组分成一个列表的方法 这样输出将类似于123 456 我试过做return Regex Match str d Value 但只输出第一次出现的数字 因此输出将是123 我也知道我
  • POI Excel:获取样式名称

    我想读取应用于 xlsx 文档中单元格的样式的名称 我已经提取了该文件 在 xl styles xml 中我可以找到样式名称
  • 实体框架多对多关系

    好吧 我正在尝试弄清楚如何正确设置我的数据库 我有两节课 public class Event public int EventId get set public string EventName get set and public cl