实体框架代码首先配置每个实体的架构

Yuc*_*uck 6 mapping linq-to-sql ef-code-first entity-framework-4.1

在LINQ to SQL中,有一个非常简单的约定,告诉映射器使用什么数据库模式 - [Table(Name = "SchemaName.TableName")].

EF CF 4.1中有类似的东西吗?我宁愿不在实体类中使用注释来保持它们尽可能纯.为了保持我的项目不动,我会做出牺牲.

这个问题很接近,但不完全是我需要的.它甚至可能已经过时,因为它看起来像是指自从最近的EF 4.1版本以来已重命名或已经发生重大变化的类 - 实体框架4:代码优先 - 在另一个模式中创建数据库?MapSingleType?

编辑:我还应该提到我的应用程序目前有三个模式,所以我不一定能使用只将默认模式从"dbo"更改为"otherschema"的解决方案.

Lad*_*nka 9

链接的答案是旧的,它不起作用,因为从最终版本中删除了自定义约定.如果要更改模式名称,可以使用流畅的api:

public class Context : DbContext
{
    public DbSet<YourType> YourTypeSet { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Entity<YourType>().ToTable("TableName", "SchemaName");
    }
}
Run Code Online (Sandbox Code Playgroud)