Same table name different schema

I have the following tables in my database, all with the same table name but different schema's.

  • dbo.Versions
  • bpm.Versions
  • wf.Version
  • ...
  • All x.Versions have a FK to the Version table.

    I've created the POCO classes from it (this gave me classes like Version, Version1, .... - - I've renamed the classNames to Version and BPMVersion, .... but the mapping still exists to the right table.

    This is an example of my mapping of BPMVersion that maps to 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);
    

    When creating the Migration script, I've got the following exception: The entity types 'BPMVersion' and 'Version' cannot share table 'Versions' because they are not in the same type hierarchy or do not have a valid one to one foreign key relationship with matching primary keys between them.

    I found the following blogs on the internet, it seams that EF has a problem with tables with the same name but different schema (https://entityframework.codeplex.com/workitem/1641 and http://geekswithblogs.net/tonyt/archive/2013/07/02/153327.aspx )

    Is there anyway to avoid this problem without renaming the table names?


    This has to do with the way EF maps table names. It looks like this is a bug in EF. As of EF 6.1, it is still in Proposed status sadly with Low priority.

    See for details: http://entityframework.codeplex.com/workitem/1641

    Update : EF WorkItem 1641 noted above has been fixed on version 6.1.2

    链接地址: http://www.djcxy.com/p/79274.html

    上一篇: 核心风格索引状态monad?

    下一篇: 相同的表名不同的架构