Linq to sql 实体框架代码首先为每个实体配置架构
在LINQtoSQL中,有一个非常简单的约定,告诉映射器要使用什么数据库模式-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”更改为“
[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()的方法。。。但事实并非如此