如何配置我的DbSet映射到特定SqlServer架构中的特定表?

时间:2012-05-04 14:12:31

标签: entity-framework

我需要构建DAL的数据库是用多个模式设计的,这导致了一些问题:

因此,例如,在两个单独的架构(供应商,交易)中考虑这些表

  • 供应商。供应商
  • Suppliers.Types
  • Deals.Deals
  • Deals.Types

我有C#

namespace Data.Entities.Suppliers 
{
    public class Suppliers { /* properties mapped to fields in Sql Server table Suppliers .Suppliers */ }
    public class Types { /* properties mapped to fields in Sql Server table Suppliers .Types */ }
}

namespace Data.Entities.Deals
{
    public class Deals { /* properties mapped to fields in Sql Server table Deals.Deals */ }
    public class Types { /* properties mapped to fields in Sql Server table Deals.Types */ }
}


namespace Data.Repositories 
{
    public class EfDataContext: DbContext 
    {
        public DbSet<Suppliers.Suppliers> Suppliers { get; set; }
        public DbSet<Suppliers.Types> SupplierTypes { get; set; }
        public DbSet<Deals.Deals> Deals{ get; set; }
        public DbSet<Deals.Types> DealTypes { get; set; }
    }
}

但EF正在绊倒两个名为“Types”的东西,我如何仅使用DbSet消除歧义?

注意: 我试图摆脱.edmx文件。

1 个答案:

答案 0 :(得分:0)

要指定架构,您可以在类上使用TableAttribute(http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.tableattribute(v=vs.103).aspx)或配置使用带有ToTable()方法的流畅api的模型(http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.tableattribute(v = vs.103).aspx)