gpt4 book ai didi

c# - 带有 Entity Framework 的 Catchall 表

转载 作者:太空宇宙 更新时间:2023-11-03 10:36:37 26 4
gpt4 key购买 nike

我正在使用 Entity Framework 将一组 JSON 文件中的数据提取到 MS T-SQL 数据库中。

JSON 文件中有一堆子集合(到目前为止计数为 20 个)都遵循模式 "CollectionName":{"Code":"SomeCode","Description":"Some Description"}

例如:"Country":{"Code":"GB","Description":"Great Britain"}"Language":{"Code":"FR ","描述":"法语"

我正在使用的代码使用这种模式:创建一个名为 CollectionName 的实体,它映射到一个包含 PK、代码和描述列的表,然后另一个名为 SourceCollection(例如:PersonLanguage)的实体映射到一个具有以下内容的桥接表每个的 Source PK 和 CollectionName PK。如果您有很多这样的小子集合,那就是很多表。

作为一名 T-SQL 程序员,我过去曾通过创建一个包含 PK、CollectionName 列以及代码和描述列的“综合表”来解决类似问题,如上。因此,所有这些小集合都位于一个表中,源表中有一个外键指针。

我找不到任何关于如何在 Entity Framework 中实现它的描述,任何人都可以通过链接或一些示例代码为我指明正确的方向吗?

最佳答案

您所描述的模式有时称为“通用查找表”,并且由于引用完整性和约束的原因通常被视为反模式。

撇开设计决定的优点不谈,您有两个选择:

A) 创建一个具有 Id、CollectionName、Code 和 Description 属性的新 EF 实体,并将您现有的类和数据映射到该实体以通过某种模式(例如 Repository)进行 CRUD 操作。

B) 将 EF 类型继承与每个层次结构的表映射一起使用,并允许 EF 将多个实体映射到同一个表。抽象父类型将具有 Id、Code 和 Description 属性。 EF 将自动创建一个鉴别器列,其用途与 CollectionName 相同。

关于c# - 带有 Entity Framework 的 Catchall 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27489815/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com