加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 相同的表名称不同的模式

发布时间:2020-12-15 07:45:14 所属栏目:百科 来源:网络整理
导读:我的数据库中有以下表,所有表具有相同的表名但不同的模式. dbo.Versions bpm.Versions wf.Version …… 所有x.Versions都有一个FK到Version表. 我已经从它创建了POCO类(这给了我类Version,Version1,…. – 我已经将classNames重命名为Version和BPMVersion,…
我的数据库中有以下表,所有表具有相同的表名但不同的模式.

> dbo.Versions
> bpm.Versions
> wf.Version
> ……

所有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”不能共享表“版本”,因为它们不在同一类型层次结构中,或者没有有效的一对一外键关系,它们之间具有匹配的主键.

我在互联网上发现了以下博客,它认为EF有同名但不同架构的表有问题(https://entityframework.codeplex.com/workitem/1641和http://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修复

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读