实体框架 - 在多对多关系中两次添加相同的实体

2023-12-24

好的。所以这里是交易。我有两个实体 - “产品”和“零件”。产品由零件组成。而且零件可以在其他产品中重复使用。这些实体之间的关系是多对多的。这一切都很好。

问题是我不能将同一部件两次添加到同一产品中。 EF 似乎强制所有相关实体都是唯一的。考虑以下代码:

var product = context.Create<Product>();
var part = GetSomePart();

Console.WriteLine(product.Parts.Count); // will output 0

// Add a part
product.Parts.Add(part);
Console.WriteLine(product.Parts.Count); // will output 1

// Add the same part again
product.Parts.Add(part);
Console.WriteLine(product.Parts.Count); // will output 1!

好吧,我明白了——避免重复或其他什么。但我需要这成为可能。有没有办法在不创建额外表的情况下执行此操作(告诉 EF 停止强制执行唯一值)?或者解决这个问题的唯一方法是手动添加中间表并自己处理多对多?


在这种情况下,您将必须创建另一个名为“ProductParts”的表,该表将具有唯一标识键,并且可以保存对产品和零件的引用,并且它们也可以是多个。

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

实体框架 - 在多对多关系中两次添加相同的实体 的相关文章

  • 实体框架代码优先查找与 SingleOrDefault(预加载)

    我正在使用 Entity Framework 4 2 代码优先 来访问我的数据库 我假设如果我使用查询一个实体SingleOrDefault如果实体尚未被跟踪 它只会查询数据库 但情况似乎并非如此 这Find另一方面 方法似乎确实在这样做
  • 大表的最佳主键格式

    我正在开发一个 ASP NET 应用程序 它有一些可能很大的数据表 我想知道定义主键的最佳方法是什么 我知道以前已经有人问过这个问题 但由于这是针对特定情况的 所以我认为这个问题是有效的 我在 SQL Server 2008 数据库上使用实
  • 在实体框架中比较日期的最佳方法

    我在实体框架的 where 子句中使用日期并收到以下错误 这是由于以下代码 var entity dbContext MyTable Where w gt w PId 3 w CreatedOn Date mydate Date First
  • 查看oracle中重复行的所有数据

    我有一个有 6 列的表 id name type id code lat long 前三个是必需的 ID是私钥 按序列自动插入 我有一些重复的行 正如两者所定义的name and type id是平等的 但我想查看受骗者的所有数据 我可以很
  • ADO.NET 池连接无法重用

    我正在开发一个 ASP NET MVC 应用程序 该应用程序使用 EF 6 x 来处理我的 Azure SDL 数据库 最近 随着负载的增加 应用程序开始进入无法再与 SQL 服务器通信的状态 我可以看到有 100 个到我的数据库的活动连接
  • 如何从实体框架中的 .edmx 文件生成数据库?

    我不得不突然转而使用 Code First Entity Framework 4 1 一开始我对这个框架一无所知 但在过去的 8 个小时里 我现在对阅读博客和文章感到更加自在 特别是这个博客 http blogs msdn com b ad
  • LINQ 对特定属性的 Distinct()

    我正在玩 LINQ 来了解它 但我不知道如何使用Distinct https learn microsoft com en us dotnet api system linq enumerable distinct当我没有一个简单的列表时
  • 如何计算关联实体而不在实体框架中获取它们

    我想知道这个问题已经有一段时间了 所以我认为值得使用我的第一篇 Stack Overflow 帖子来询问它 想象一下我正在与关联的消息列表进行讨论 DiscussionCategory discussionCategory reposito
  • EntityFramework 6.0.0.0 读取数据,但不插入

    我创建了一个基于服务的数据库 folderName gt Add New Item gt Data gt Service based Database文件到 WPF 应用程序中 然后我用过Database First方法并创建了Person
  • IOptions 不包含 ASP.NET 5 Beta 8 中的定义“选项”

    Problem 我在将 beta7 应用程序升级到 beta8 时遇到问题 我最初有超过 50 个错误 但现在基本上只剩下两个我无法解决的持续错误 一种是带有选项 选项缺失错误 这是错误 错误 CS1061 IOptions 不包含 Opt
  • 数据库优先方法和修改数据库模式

    我正在使用数据库优先方法使用实体框架 DbContext 构建 ASP NET MVC Web 应用程序 如果在某些情况下我需要修改数据库 例如添加新表或修改现有表 添加列或更改列数据类型 我应该 删除现有实体 edmx 和 tt 文件夹并
  • 同一数据库的多个实体框架

    我们可以在项目中为同一个数据库创建多个实体框架吗 我想为每个子系统创建实体框架 一些子系统具有共享表 这是可能的 您可以根据需要创建多个 EDMX 文件 但不建议这样做 因为 您不能查询不同模型中的多个表 定义边界将非常困难 因为大多数表都
  • LINQ to Entities 无法识别“Int32 IndexOf(System.String, System.StringComparison)”方法

    我已经使用 Entityframework 执行了 linq 查询 如下所示 GroupMaster getGroup null getGroup DataContext Groups FirstOrDefault item gt keyw
  • 实体框架 - 选择特定列并返回强类型而不丢失强制类型转换

    我正在尝试做类似的事情这个帖子 https stackoverflow com questions 1094931 linq to sql how to select specific columns and return strongly
  • 如何在种子实体框架版本 6.x 中通过 AddOrUpdate 方法插入身份[重复]

    这个问题在这里已经有答案了 我有一个具有身份列的实体 作为数据种子的一部分 我想对系统中的 标准数据 使用特定的标识符值 我不想禁用身份 只有我想在迁移种子中设置 IDENTITY INSERT ON 我的代码是 protected ove
  • LINQ to Entities - 无法将“System.DateTime”强制转换为 orderBy 中的“System.Object”类型

    我试图从传入的 Expression gt 中按日期订购实体的 IQueryable 并收到错误 无法将类型 System Nullable 1 转换为类型 System Object LINQ to Entities 仅支持转换实体数据模
  • LINQ 中的“from..where”或“FirstOrDefault”

    传统上 当我尝试从数据库中获取用户的数据时 我使用了以下方法 在某种程度上 DbUsers curUser context DbUsers FirstOrDefault x gt x u LoginName id string name c
  • 你能教实体框架识别表达式吗?

    我有一个使用实体框架的搜索功能 您可以搜索的内容之一是日期范围 您可能会说 开始日期位于 SearchStart 和 Search End 之间 使用 linq 语法编写并不困难 但当您有许多不同的日期参数可供搜索时 它可能会变得相当冗长
  • 如何删除实体框架6中的多对多关系

    如果将项目连接为多对多关系 则从数据库中删除项目时会出现问题 我的数据库看起来像 Project lt JobInProject gt Job ProjectID JobInProjectID JobID ProjectID JobID 主
  • 如何手动加载 N:N 关系中的相关实体?

    我正在使用 EF5 当关系为 1 N 时 如果我想加载相关实体 我会执行以下操作 使用 T SQL 我使用如下 T SQL 从数据库加载主要实体 select from MainEntities where 使用 T SQL 我加载相关实体

随机推荐

  • Android 中的注销功能

    我正在制作一种社交网络应用程序 我正在其中实现注销功能 在 注销 按钮上单击它应该导航到登录屏幕 但它现在导航到主页屏幕 我正在使用以下代码进行注销 IntentFilter intentFilter new IntentFilter in
  • 轻量级 Android 应用程序的技巧

    我开始开发 Android 应用程序 我想知道是否有任何创建轻量级应用程序的技巧 这是我第一次尝试在移动平台上编写应用程序 但我希望我的编程经验能有所帮助 我想到了 更好 更快 更轻的 Java 一书 但这会是我问题的 最佳 答案吗 是否有
  • 谷歌分析 & jQuery Mobile & jQuery 1.9

    之前有一个关于使用 Google Analytics 和 jquery Mobile 的问题 并提供了成功的答案here https stackoverflow com questions 12762950 jquery mobile an
  • PHP SQL查询错误

    我在此代码中的类型对话方面遇到一些问题 使用 Facebook PHP SDK 3 0 1 page id 192485754113829 post limit 2 query select post id source id actor
  • 是用 Monad 的 Applicative 来定义 Functor 更好,还是反之亦然?

    这是一个一般性问题 与任何一段代码无关 假设你有一个类型T a可以给出一个实例Monad 因为每个单子都是一个Applicative通过分配pure return and lt gt ap 然后每个应用程序都是一个Functor via f
  • R Studio 无法识别快捷方式

    我搜索了这个论坛 我知道存在类似的问题 但是 所有建议的解决方案都不适合我 我认为这与我的键盘有关 但我尝试了一切 但没有运气 Mainly 我无法为 运行当前行或选择 设置 CTRL r 的快捷方式 事实上 我不能使用 Ctrl R 组合
  • 查询每个小部件最近的两个条目

    我有两张桌子 其中一个 小部件 有一个小部件列表 ID 小部件名称 颜色等 以及有关它们的数据 另一个 测试 有一个在小部件上运行的测试列表 ID 日期 info1 info2 等 我想要做的是显示最近的两个测试 我认为我真的不需要为此使用
  • 在“WEB-INF/lib”文件夹和“src/main/resources”文件夹中找不到 jar 文件的解决方案?

    我有一个在 Jetty App Engine Spring 上运行的 Java 应用程序 去掉一些之后jar文件来自pom并将它们放入WEB INF lib文件夹 它们不再被发现 我得到了很多 Cannot find symbol 构建错误
  • 如何对自定义元素进行单元测试

    我有一个扩展的类HTMLElement 从阅读这个线程 https github com Microsoft TypeScript issues 574 issuecomment 231683089 https github com Mic
  • 在 Phonegap/Cordova 3.0+ 中,更改后是否有办法刷新插件?

    抱歉 如果这是一个简单的问题 我希望这是一个简单的问题 PhoneGap Cordova 文档非常糟糕 目录结构如下 platforms ios android plugins www 无论如何 是否可以在父插件目录中进行更改 然后将这些更
  • ASP.NET FileUpload - 如何更改“浏览...”按钮描述的语言?

    我知道这里已经发布了非常相似的问题 如何更改 FileUpload 控件 System Web UI WebControls 中浏览按钮的文本 https stackoverflow com questions 94316 how to c
  • 检查控制器所有操作的会话

    我有一个简单的 MVC 应用程序 我想首先检查此操作的会话 public ActionResult Index if Session UserInfo null return RedirectToAction Login Users ret
  • 生成访问令牌 Instagram API,无需登录?

    因此 我正在构建一个餐厅应用程序 我想要的功能之一是允许该应用程序的用户查看特定餐厅 Instagram 帐户中的照片 我希望用户无需登录 Instagram 帐户即可看到此内容 因此他们甚至不需要 Instagram 帐户即可实现此功能
  • 将 iOS 崩溃转储中的偏移量与反汇编的二进制文件相匹配

    我无法将 iOS 崩溃转储的堆栈跟踪中的偏移量与 otool 输出的二进制文件反汇编中的偏移量进行匹配 任何人都可以确认我原则上如何匹配这些 例如 如果我在故障转储中得到一行 0 myapp 0x00005b0a 0x1000 19210
  • fcntl(), F_GETFD 在 UNIX 中的含义

    unix 中 fcntl 函数中 F GETFD 的含义是什么 据我了解 如果指定位置没有文件描述符 它应该返回 1 如果这是真的 那么什么时候会发生 当接近该位置的文件描述符时 F GETFD 也不返回 1 这是使用 F GETFD 的程
  • window.onload 中调用的函数无法识别元素

    我在这里有点困惑 我认为指定的函数window onload在页面加载之前没有执行 尽管如此 我在下面的代码中遇到了错误 这是jsfiddle版本 http jsfiddle net Claudius raktx img alt src h
  • 在c++中获取动态库目录(linux)

    是否有任何编程方式来获取程序加载的动态库的位置 我知道可以获得 可执行 运行路径 但这对我来说还不够 我正在开发一个具有一些依赖项的外部库 我需要相应地指向它的位置 例如 程序运行在 local deepLearning bin 该程序使用
  • 同步计时器以防止重叠

    我正在编写一个 Windows 服务 它定期运行可变长度的活动 数据库扫描和更新 我需要经常运行此任务 但要处理的代码不能安全地同时运行多次 如何最简单地设置一个计时器 每 30 秒运行一次任务 同时不重叠执行 我假设System Thre
  • 带有自定义视图控制器的 iOS 共享扩展

    我正在创建一个共享扩展 以允许将 Youtube 视频共享到我的应用程序中 但很难顺利地呈现我的自定义 UI 我不想使用仅包含原始 Youtube URL 的默认视图控制器 而是想做一些视觉上类似于 Facebook 扩展的操作 显示缩略图
  • 实体框架 - 在多对多关系中两次添加相同的实体

    好的 所以这里是交易 我有两个实体 产品 和 零件 产品由零件组成 而且零件可以在其他产品中重复使用 这些实体之间的关系是多对多的 这一切都很好 问题是我不能将同一部件两次添加到同一产品中 EF 似乎强制所有相关实体都是唯一的 考虑以下代码