gpt4 book ai didi

entity-framework - 如何处理 Entity Framework 中的 "secondary"键

转载 作者:行者123 更新时间:2023-12-04 15:38:11 24 4
gpt4 key购买 nike

我正在针对现有模式评估使用 EF - 问题是我无法弄清楚如何在外键不是主表的主键的表之间建立关联。

例如,一个 foo可能有很多 bars定义如下(请原谅伪代码):

table foo {
int foo\_id pk,
char(10) foo\_code,
...
}

table foobar {
int bar\_id pk,
char(10) bar\_foo\_code fk(foo.foo\_code),
...
}

我缺少什么才能创建 foo_foobar关联,因此是 Bars Foo 上的导航属性实体?

最佳答案

Linq to entity 不支持不指向表主键的外键(请参阅日志消息 3)。 Linq to entity 会将其视为表中的普通字段。您将无法导航到它所链接的实体。

如果您有现有架构,我建议您使用 edm generator因为这将创建 EMDX 文件、隐藏代码甚至 View 代码(可能非常大)。如果您现有的计划相当大,请查看此 post ,它解释了如何处理大型模式。

当您运行 EDM Generator 时,您会发现所有不支持的东西。

查看之前的 EDMGen2.exe 日志,我们得到了以下类型的消息:

  • 数据类型“sql_variant”不是
    支持,列 'ColumnName'
    在表 'TableName' 是
    排除在外。
  • 表/ View 'tableName' 不
    定义了一个主键。 key
    已经推断和定义
    被创建为只读表/ View
  • 关系“RelationshipName”
    有不属于的列
    table 上的 key
    关系的主要方面
    不支持的,
    关系被排除在外。

  • 我们还发现 Linq 项目实际上使 Visual Studio 崩溃了很多,因为 EDM 生成的代码文件远远超过 80 mb。

    关于entity-framework - 如何处理 Entity Framework 中的 "secondary"键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/637877/

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