10
我们使用的是实体框架,Code First,在我们的数据库中,我们有几个具有相同名称但具有不同Schema的表。EF代码首先,如何用不同的模式注册相同的表名?
我也把模型放在两个不同的命名空间中。
我如何在我的DbContext类中注册这些表?
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Data.Schema1.Contact>().ToTable("Contact", "schema1");
modelBuilder.Entity<Data.Schema2.Contact>().ToTable("Contact", "schema2");
}
感谢您的帮助提前!
问题是,如果我把类放在两个不同的上下文类中,我不再可以加入这两个表...... 有什么办法可以解决这个问题吗? Context.Contacts.Include(“Contacts2”); 其中Contact2来自不同的上下文。 – sam360 2011-12-19 16:41:22
不,你不能进行跨上下文查询。因此,唯一的选择是为您的类使用不同的名称 - 当您必须使用相同方法处理这两种类型时,它还会使代码更具可读性。 – 2011-12-19 19:45:10
如果我使用不同的类名并在同一上下文中包含这两个名称,EF会给我一个错误: – sam360 2012-04-17 12:07:37