Linq to sql 实体框架代码首先为每个实体配置架构

Linq to sql 实体框架代码首先为每个实体配置架构,linq-to-sql,mapping,ef-code-first,entity-framework-4.1,Linq To Sql,Mapping,Ef Code First,Entity Framework 4.1,在LINQtoSQL中,有一个非常简单的约定,告诉映射器要使用什么数据库模式-[Table(Name=“SchemaName.TableName”)] EFCF4.1中是否有类似的内容?我不希望在实体类中使用注释来尽可能保持它们的纯净。为了让我的项目继续进行,我会做出牺牲 这个问题很接近,但不完全是我需要的。它甚至可能是过时的,因为它看起来是指自最近的EF 4.1版本以来已重命名或有重大更改的类- 编辑:我还应该提到,我的应用程序目前有三个模式,因此我不一定要使用只将默认模式从“dbo”更改为“

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

EFCF4.1中是否有类似的内容?我不希望在实体类中使用注释来尽可能保持它们的纯净。为了让我的项目继续进行,我会做出牺牲

这个问题很接近,但不完全是我需要的。它甚至可能是过时的,因为它看起来是指自最近的EF 4.1版本以来已重命名或有重大更改的类-


编辑:我还应该提到,我的应用程序目前有三个模式,因此我不一定要使用只将默认模式从“dbo”更改为“otherschema”的解决方案。

链接的答案是旧的,它不起作用,因为自定义约定已从最终版本中删除。如果要更改架构的名称,可以使用fluent 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");
    }
}
公共类上下文:DbContext
{
public DbSet YourTypeSet{get;set;}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
基于模型创建(modelBuilder);
modelBuilder.Entity().ToTable(“TableName”、“SchemaName”);
}
}

我想自动设置表名,手动设置模式!但是怎么做呢?应该有一个类似于ToSchema()的方法。。。但事实并非如此