EF 插入重复的父对象

2023-11-26

我有两节课:

public class Foo
{
    public int FooId {get;set;}
    public virtual ICollection<Bar> Bars {get;set;}
}

public class Bar
{
    public int BarId {get;set;}
    public virtual Foo {get;set;}
}

如果我运行以下代码,我会得到Foreign Key Conflict对食品。

var foo = from f in context.Foos
          where f.FooId == 1
          select f;

var bar = new Bar();
bar.Foo = foo;

context.Bars.Add(bar);
context.SaveChanges();

如果我禁用 SQL 中的所有关键检查,我最终会得到重复的结果Foo在数据库中。


正在加载foo相同的上下文添加新的bar与相关的foo不会造成重复。我的猜测是您的真实代码使用两个不同的上下文。

代码中唯一需要更改的内容(不会编译,因为foo is an IQueryable<Foo>而不是一个Foo)是为了具体化foo, 例如:

var foo = (from f in context.Foos
          where f.FooId == 1
          select f).Single();

除此之外,代码片段很好。

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

EF 插入重复的父对象 的相关文章

  • Breezejs 加载具有相关数据的实体时出错

    毫无疑问 我在这里遗漏了一些明显的东西 所以也许互联网的集体力量可以向我指出这一点 我有一个代码优先的数据库结构 由用户 组和一个链接两者的 GroupUsers 表组成 EF 本身可以处理 n n 关系 但 Breezejs 需要显式地使
  • 实体框架-实体映射问题

    我有两个表 地址和联系人 它们在 contactID 上连接 在联系人中 这两个表在我的实体数据模型 EF 4 0 中都有实体 我不想修改它们 我确实想创建一个包含两个实体信息的新实体 到目前为止我做了什么 In CSDL
  • LINQ 按降序排序,底部为空值 [重复]

    这个问题在这里已经有答案了 我有这样的表达 troubletickets db ServiceTickets Include t gt t Company Include t gt t UserProfile troubletickets
  • 为什么实体框架尝试选择所有列,即使我只指定了两列?

    我继承了一个 ASP MVC 项目 该项目使用 Entity Framework 6 1 3 与 Dynamics CRM 2011 SQL 数据库进行交互 我正在使用此查询来尝试获取具有帐号的所有活动帐户 并且我仅选择两列为匿名类型 va
  • 如何使用 EF Code First 将一张表与多个父项关联

    我正在构建一个域模型 该模型需要多个表才能被多个可能的父表引用 像您可能有一个表来存储注释或文件 并且这些注释和 或文件可以与不同的父实体关联 并不是说同一个 文件 或 注释 可以与多个所有者相关联 而是 文件 表中的 10 行中 其中 3
  • LINQ to Entities 使用表达式参数选择列

    我无法理解如何通过指定表达式作为参数来设法在可查询中选择列 Method A IQueryable
  • EF 中的 GUID COMB 策略

    有没有办法使用 CodeFirst 设计为新的 Entity Framework 4 1 中的对象实现 Guid COMB 身份策略 我想设置StoreGeneratedPattern可以 但它仍然给我正常的 GUID 为什么要担心数据库中
  • 如何获取 EF 中的实体更改增量?

    我只需要获取已更改字段的列表 数据存储区是 ssce 因此没有可用的触发器 EF 是否支持获取列表或构建通用组件 根据上下文的类型和生成的实体 您可以通过多种不同的方式来完成此操作 如果对象继承自 Entity 或 POCO 您可以使用Ob
  • .NET 实体框架核心

    我已经阅读了过去两年中发布的几乎所有有关 EF 的其他问题 我下载其他软件包没有任何问题 只是实体框架不会为我安装 我什至尝试安装最新版本的 Nuget 并在我的项目目录中使用它的工具来恢复包 之后 我将这一行添加到我的 csproj 中
  • 如何使用 Entity Framework Code First 在两个实体之间建立多个一对多关系

    下面是保存关系数据库记录的简单方法 该方法运行得很好 我对一种情况有疑问 在此之前 我需要知道如果数据库复杂性增加 我所采用的方法会遇到什么困难 还有更好 高效但简单的方法吗 一对一 tb student store student det
  • 不支持 EF6 上下文类型“System.Data.Entity.Core.Objects.ObjectContext”

    我有一个使用 Visual Studio 2013 和 ADO NET 实体数据模型 EF6 创建的新项目 现在我必须使用一些动态数据函数 例如访问 MetaTable 对象 所以我添加以下代码 MetaModel model new Me
  • 同一配置文件上的两个不同提供程序

    我在用着实体框架 6 1 0 I have 2 家提供者 MysqlClient 和 SQLServerCE 我需要创建2个不同的DBContext 这迫使我创造2个配置类因为mysql有一些不同的东西 但是当我初始化应用程序时 Datab
  • 脚手架 EntityFramework 6 无法将“System.Data.Entity.Core.Objects.ObjectContext”类型的对象强制转换为“System.Data.Objects.ObjectContext”

    我想在 EntityFrameWork 6 中使用脚手架 但是得到这个 无法检索 myNameSpace Models prod 的元数据 无法将 System Data Entity Core Objects ObjectContext
  • 实体框架中的实体图是什么?

    我一直在研究一些实体框架教程 并且遇到了这个词实体图 我对这个术语及其用法还没有清楚的了解 任何人都可以提供有关此主题的信息 例如它是什么及其在实体框架上下文中的用途 当实例化的对象以某种关系连接在一起时 它们被称为 图或实体图 实体框架有
  • 构建视图模型的最佳方法是什么?

    我正在使用带有实体框架的 asp net mvc 并开始学习 DDD 我正在从事包含调查的项目 这是我的域模型 public class Survey public int SurveyID get set public string Na
  • 包管理器控制台中缺少文件错误

    我们的开发团队的一些成员在打开包管理器控制台时开始看到以下错误 它完全阻止我们运行实体框架命令 我们已经检查过并且提到的文件确实存在 GetEvent types ps1xml Diagnostics Format ps1xml Diagn
  • 是什么原因导致 Linq 错误:此方法无法转换为存储表达式?

    我有一堆具有相同 select 语句的 Linq to Entity 方法 所以我想我会很聪明 并将其分离到它自己的方法中以减少冗余 但是当我尝试运行代码时 我得到了以下内容错误 该方法不能转化为 商店表达式 这是我创建的方法 public
  • 实体框架多表多对多

    我正在使用 EF4 1 Code First 并尝试创建一些需要链接表的多对多关系表 请参阅下面的一小段代码 class Event int EventId get set ICollection
  • EF代码首先从数据库0..1到多个关系

    我正在尝试从现有数据库生成实体框架代码优先模型 不更改数据库架构 该数据库过去曾用于生成 edmx 模型 我正在尝试使用 Fluent Api 或数据注释来实现等效模型 我无法使用连接表 不是可为空的外键 重现 0 1 到许多的关系 所以它
  • 外键与独立关系 - Entity Framework 5 有改进吗?

    我读过了several http www ladislavmrnka com 2011 05 foreign key vs independent associations in ef 4 文章和问题 https stackoverflow

随机推荐