gpt4 book ai didi

c# - 相同的表名不同的模式

转载 作者:太空狗 更新时间:2023-10-29 20:30:40 28 4
gpt4 key购买 nike

我的数据库中有以下表格,所有表格名称相同但架构不同。

  • dbo.版本
  • bpm.版本
  • wf.版本
  • ...

所有 x.Versions 都有一个 FK 到 Version 表。

我已经从中创建了 POCO 类(这给了我 Version、Version1 等类,.... - 我已将 classNames 重命名为 Version 和 BPMVersion,....但映射仍然存在右表。

这是我映射到 bpm.Versions 的 BPMVersion 的映射示例

// Primary Key
this.HasKey(t => t.Id);

// Properties
// Table & Column Mappings
this.ToTable("Version", "bpm");
this.Property(t => t.Id).HasColumnName("Id");
this.Property(t => t.VersionId).HasColumnName("VersionId");
this.Property(t => t.BPMId).HasColumnName("BPMId");

// Relationships
this.HasRequired(t => t.BPM)
.WithMany(t => t.BPMVersions)
.HasForeignKey(d => d.BPMId);
this.HasRequired(t => t.Version)
.WithMany(t => t.BPMVersions)
.HasForeignKey(d => d.VersionId);

创建迁移脚本时,出现以下异常:实体类型“BPMVersion”和“Version”不能共享表“Versions”,因为它们不在同一类型层次结构中,或者它们之间没有有效的一对一外键关系以及匹配的主键。

我在互联网上找到了以下博客,它们似乎表明 EF 对具有相同名称但不同架构(https://entityframework.codeplex.com/workitem/1641http://geekswithblogs.net/tonyt/archive/2013/07/02/153327.aspx)的表有问题

有没有不重命名表名就可以避免这个问题的方法?

最佳答案

这与 EF 映射表名的方式有关。看起来这是 EF 中的错误。从 EF 6.1 开始,它仍然处于低优先级的建议状态。

详情见:http://entityframework.codeplex.com/workitem/1641

更新:上述 EF WorkItem 1641 已在 version 6.1.2 上得到修复

关于c# - 相同的表名不同的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23888410/

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