- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 2 个对象,我想将它们分别存储在 2 个不同的表中。我们将类称为 Foo 和 FooTemp。
我正在使用 Table Per Concrete Type (TPC) 继承,因为我希望类 FooTemp 扩展类 Foo 并且我希望数据单独存储。
两个表之间的唯一区别是 FooTemp 有一个额外的字段。
我关注了this guide for setting up TPC inheritance .唯一的区别是我的派生类中有一个额外的字段。
现在,这是我的问题。当我向数据库添加新记录时,出现错误:
"System.ArgumentException: An item with the same key has already been added"
为什么会出现此错误?有没有其他方法可以继承并将数据存储在单独的表中?
最佳答案
如果您在两个表中定义自动生成的身份 key ,我认为 TPC 存在问题。尽管从 SQL Server 的角度来看这不是问题(因为两个表是分开的,因此可以有具有相同键的记录) Entity Framework 不允许共享相同基类的两个对象具有相同的键值。但是,如果您在两个表上使用相同的身份种子(例如 1)自动生成 key ,则可能会发生这种情况。
我不确定这是否是您的问题。如果您从一个空的对象上下文开始,创建一个新的 Foo
或 FooTemp
,将其添加到上下文并保存更改,我上面描述的问题就不会发生。
但它会发生在例如以下情况:
// Imagine, you know that there is a Foo with Key 1 already in the DB, or you
// could also query for that Foo to attach to the context
Foo foo = new Foo() { Key = 1 };
context.Foos.Attach(foo);
// Now, we have an object of type Foo with Key 1 in the object context
// Let's assume, that the table FooTemp in the DB is empty. We create the
// first FooTemp
FooTemp fooTemp = new FooTemp();
context.Foos.Add(fooTemp);
context.SaveChanges();
// If the FooTemp table has an autogenerated identity with seed 1 in the DB,
// our FooTemp gets Key 1 in the DB. Because Entity Framework accepts the
// DB changes after calling SaveChanges, our FooTemp object will now have
// the Key 1, so we have a second Foo (since FooTemp derives from Foo) with
// the same Key 1 in the same object context
我能看到的解决方法:
关于c# - Entity Framework 的 TPC 继承问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5273106/
我对不同类型的 TPC 基准感到困惑。 TPC-C、TPC-E 和 TPC-H 基准测试之间的主要区别是什么? 最佳答案 TPC-C(大约 1992 年)模拟了一个“老式”OLTP 应用程序,它看起来
除了 TPC-H 之外还有哪些常见的基准测试?和 TPC-DS ,涉及许多大fact tables和多个 joins在他们之上? 最佳答案 不确定这个问题是否与 Stackoverflow 相关,但我
我在使用 C# Entity Framework Codefirst 和 Fluent Api 的 TPC 继承方面遇到了一个奇怪的问题。我有 3 个名为 Person 的类, Invoice和 Pe
本文分享自华为云社区《GaussDB(DWS) 《DWS之TPCD-DS&TPC-H与查询性能的那些事儿》》,作者: 一剑战八荒 。 1 综述 本文目标在于,详细讲述使用GaussDB(DWS)时,如
我在多个地方读到,根据基准数据验证您的代码总是好的。 我的问题是如何以及从何处获取基准数据? 我需要TPC-H基准测试数据,也访问了http://www.tpc.org/tpch/ , 但不明白如何获
有人知道 TPC-H 模式吗?我尝试编译但有一些错误。 我需要 sql 模式文件。如果可能,还有数据 sql 文件。 谢谢 最佳答案 TPC-H 有一个生成数据库的 DBGEN。 您可以在 : htt
所以我实现了每个具体类的表来处理继承层次结构,但我在导航属性方面遇到了问题。 我的模型结构如下: 我有一个抽象的 BaseEntity 类,有多个派生类,所以: public abstract cla
我对 SSD 驱动器感兴趣已有一段时间了。我做了很多与数据库有关的工作,并且我一直非常有兴趣找到基准测试,例如使用和不使用 SSD 驱动器执行的 TPC-H。 在外面听起来好像会有一个,但遗憾的是我没
我尝试使用 TPC 样式的 Entity Framework 映射一些类,但出现以下错误: Error: The type 'A' cannot be mapped as defined becaus
好的,当我尝试按如下方式指定连接表的名称时, Entity Framework 遇到了一些问题: // Used by a bunch of things... public abstract Bas
我有 2 个对象,我想将它们分别存储在 2 个不同的表中。我们将类称为 Foo 和 FooTemp。 我正在使用 Table Per Concrete Type (TPC) 继承,因为我希望类 Foo
我正在尝试在 EF 4.4 上实现 TPC 设计。 我有一组已经映射到现有表的类,并添加了一组具有相同结构的类,这些类将映射到不同的表,具有不相交的 ID。 所以这几乎是旧类的新设计(没有我要添加的新
有没有人用DBGEN TPC-H这个工具生成了一个非常大的百万条记录的表?有人推荐了,但只给了我the url . 该软件是 DBGEN,它是一个 C 语言程序,可以生成可以导入 DBMS 的文本文件
我最近将我的机器从 PostgreSQL8.3 升级到 PostgreSQL9.3.4。升级后,当我运行 TPC-H 查询进行性能测试时,我可以看到时间发生了巨大变化。特别是在 pgsql8.3 中执
我在 Ubuntu Linux 服务器上运行 Pyramid ,在尝试使用 pyramid_mailer 时遇到了 ValueError。我的代码比较简单,似乎任何东西都会导致它: def my_vi
好吧,可能这个问题之前已经回答过,但我一直在研究,但我找不到解决我的具体问题的方法 Code of this sample - Visual Studio 2012 - Console App 所以我
我们正在通过 创建 EntityFramework CodeFirst DAL遗产 数据库(这意味着我们大多被它所存在的任何设计错误所困扰)。 领域模型(非常)简单:我们有抽象 Card,子类型为 H
我正在尝试根据 http://www.schema.org 上定义的实体构建一个实体模型和数据库。使用 Code First 和迁移。底线是所有实体都继承自实体“事物”。 迁移会构建数据库,但任何对数
我有相互继承的模型,但我正在努力让流畅的 api 配置按照我想要的方式运行。假设我有一个定义了一些核心属性的基类 public class Entity { public int Id { ge
为了避免使用每层次结构表 (TPH),我一直在研究如何在我的数据库模型中最好地实现每个具体类表 (TPC) 继承的示例。我遇到了 official documentation和 this articl
我是一名优秀的程序员,十分优秀!