在 LINQ to SQL 中,有一个非常简单的约定来告诉映射器要使用什么数据库模式 - [Table(Name = "SchemaName.TableName")]
。
EF CF 4.1 中是否有类似内容?我宁愿不在实体类中使用注释来使它们尽可能纯净。为了保持我的项目进展,我会做出牺牲。
这个问题很接近,但不完全是我需要的。它甚至可能已过时,因为它看起来指的是自最近的 EF 4.1 版本(实体框架 4:代码优先 - 在另一个架构中创建数据库)以来已重命名或具有重大更改的类?MapSingleType?
编辑:我还应该提到我的应用程序目前有三个模式,所以我不一定能使用仅将默认模式从"dbo"更改为"其他模式"的解决方案。
链接的答案很旧,它不起作用,因为自定义约定已从最终版本中删除。如果要更改架构的名称,可以使用流畅的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");
}
}