gpt4 book ai didi

entity-framework - 动态更改 Fluent API 映射

转载 作者:行者123 更新时间:2023-12-04 07:24:20 25 4
gpt4 key购买 nike

我们的项目使用 Entity Framework Code First。我们希望有一个实例,其中一个非常简单的 POCO 代表数据库中的许多表。它是 SQL Azure 中水平分区策略的一部分。 SQL Azure 不支持文件组,因此不支持典型的分区。将会有大量的表,因此通过基表上的 CHECK CONSTRAINT 使用 UNION ALL View 作为分区 View 是不可行的。

因此,我们更愿意在运行时根据需要执行映射。然而,这发生在 DbContext 类的 OnModelCreating 事件中,通过代码如

modelBuilder.Entity<EntityName>().ToTable("foo", "bar");

.我们是否可以在工厂内部执行此映射?我们更愿意向工厂提供元数据,然后让它使用 Fluent API,而不是通过 ModelBuilder 在 POCO 和表之间建立一对一的映射。

最佳答案

您可以向您的 DbContext 派生添加一个构造函数,为表名称和元架构名称提供两个字符串参数。您可以将名称存储在成员变量中,并在 ToTable 方法中使用它们。

DbModel 是在实际需要时创建的,因此构造函数总是在 OnModelCreating 事件之前运行。 (在派生类中并非总是如此,但那是另一个话题)。

作为一项优化,您可以通过 the constructor accepting a DbCompiledModel 缓存编译的 DbModel 和构建 DbContext .

关于entity-framework - 动态更改 Fluent API 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9762808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com