C# 如何在实体框架中从另一个上下文映射集合和实体?

C# 如何在实体框架中从另一个上下文映射集合和实体?,c#,entity-framework,entity-framework-6,C#,Entity Framework,Entity Framework 6,我有这个EF实体 public class Show { private ICollection<Country> _allowedCountries; public virtual ICollection<Country> AllowedCountries { get { return _allowedCountries ?? (_allowedCountries = new Li

我有这个EF实体

    public class Show
    {
        private ICollection<Country> _allowedCountries;

        public virtual ICollection<Country> AllowedCountries
        {
            get { return _allowedCountries ?? (_allowedCountries = new List<Country>()); }
            set { _allowedCountries = value; }

        }

}
公共类节目
{
允许私人收集的国家;
国家允许的公共虚拟ICollection
{
获取{return\u allowedCountries???(\u allowedCountries=new List());}
设置{u allowedCountries=value;}
}
}
国家是另一个环境中的实体

当我尝试读取属性AllowedCountries时,我得到一个关于没有现有表的错误

表“db1.countries”不存在

Show映射到db1.Show表,Country映射到db2.countries

我的国家地图和显示表

    public class CountryMap : EntityTypeConfiguration<Country>
    {
        public CountryMap()
        {
            ToTable("countries", "db2");

//other non useful information

        }
    }

        public ShowMap()
        {
            ToTable("shows", "db1");

          HasMany(x => x.AllowedCountries) //I think problem here
                .WithMany()
                .Map(m =>
                {
                    m.ToTable("allowed_countries");
                    m.MapLeftKey("ShowID");
                    m.MapRightKey("CountryID");
                });
}
公共类CountryMap:EntityTypeConfiguration
{
公共国家地图()
{
ToTable(“国家”、“db2”);
//其他无用信息
}
}
公共ShowMap()
{
ToTable(“显示”、“db1”);
有很多(x=>x.AllowedCountries)//我认为这是个问题
.有很多
.Map(m=>
{
m、 ToTable(“允许的国家”);
m、 MapLeftKey(“ShowID”);
m、 MapRightKey(“CountryID”);
});
}

我认为这个问题是由不正确的国家/地区映射引起的。我不认为您可以从不同的上下文中获得相关的实体。您可能会考虑使用链接服务器(MSSQL特性)使两个表都能看到一个连接。也许你应该问问自己,为什么有两种情况

一般来说,你应该从需要的那一刻开始打开一个上下文,完成后关闭它;中间的每件事都是在一个工作单元中完成的