Pit*_*DBA 3 entity-framework code-first azure-sql-database
我们的项目使用Entity Framework Code First.我们希望有一个实例,其中一个非常简单的POCO表示数据库中的许多表.它是SQL Azure中水平分区策略的一部分.SQL Azure不支持文件组,因此它不支持典型的分区.将会有非常多的表,因此使用UNION ALL视图作为基表上的CHECK CONSTRAINTs的分区视图是不可行的.
因此,我们更愿意在运行时根据需要执行映射.但是,这发生在DbContext类的OnModelCreating事件中,例如
modelBuilder.Entity<EntityName>().ToTable("foo", "bar");
Run Code Online (Sandbox Code Playgroud)
.我们可以在工厂内执行此映射吗?我们更愿意向工厂提供元数据,然后让它使用Fluent API,而不是通过ModelBuilder在POCO和表之间进行一对一的映射.
您可以为您的DbContext衍生物添加构造函数,为表名和metaschema名称提供两个字符串参数.您可以将名称存储在成员变量中,并在ToTable方法中使用它们.
在DbModel当实际需要创建它,所以构造函数总是之前运行OnModelCreating的事件.(在派生类中并非总是如此,但这是一个不同的主题).
作为优化,您可以通过接受a的构造函数来缓存已编译的DbModels和构建.DbContextDbCompiledModel
| 归档时间: |
|
| 查看次数: |
1576 次 |
| 最近记录: |