相同的表名不同的模式

7
我有一个数据库,里面有以下几张表,它们的表名相同但模式不同。
  • dbo.Versions
  • bpm.Versions
  • wf.Version
  • ...
所有的x.Versions都有一个FK指向Version表。
我已经从中创建了POCO类(这给我带来了像Version、Version1等类的名称——我将类名重命名为Version和BPMVersion等,但映射仍然存在于正确的表中。
这是我对BPMVersion进行的映射示例,它映射到bpm.Versions。
// 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/1641 http://geekswithblogs.net/tonyt/archive/2013/07/02/153327.aspx
有没有办法避免重命名表名而避免这个问题?

1
也许你可以将其映射到视图... - tschmit007
1个回答

4

1
6.1.3有这个bug。 - Slime recipe
在 6.1.3 中有相同的问题。刚遇到这个问题。 - Tsukasa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接