![](/img/trans.png)
[英]How to refactor out base entity configurations to a separate class in Entity Framework Core Fluent API
[英]Entity-framework-7 Organizing Fluent API configurations into a separate class
我很熟悉如何將流暢的API配置組織到EF6上的單獨類中,但是如何通過EF7實現這一點?
以下是如何使用EF6執行此操作的示例:
ModelConfigurations.cs
public class ModelConfigurations : EntityTypeConfiguration<Blog>
{
ToTable("tbl_Blog");
HasKey(c => c.Id);
// etc..
}
並從OnModelCreating()調用它
protected override void OnModelCreating(DbModelbuilder modelBuilder)
{
modelBuilder.Configurations.Add(new ModelConfigurations());
// etc...
}
在EF7上,我無法解析EntityTypeConfiguration? 從單獨的類實現流暢的API調用的正確方法是什么?
試試這個:
public class BlogConfig
{
public BlogConfig(EntityTypeBuilder<Blog> entityBuilder)
{
entityBuilder.HasKey(x => x.Id);
// etc..
}
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
new BlogConfig(modelBuilder.Entity<Blog>());
}
我通常為所有實體類做的是提供一個靜態方法,在我的上下文實現中從我的OnModelCreating
方法調用:
public class EntityPOCO {
public int Id { get; set; }
public static OnModelCreating(DbModelBuilder builder) {
builder.HasKey<EntityPOCO>(x => x.Id);
}
}
...
public class EntityContext : DbContext {
public DbSet<EntityPOCO> EntityPOCOs { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
base.OnModelCreating(modelBuilder);
EntityPOCO.OnModelCreating(modelBuilder);
}
}
更進一步,您甚至可以使用屬性自動執行該過程並動態生成上下文類。 這樣您只需要處理POCO並且永遠不會觸及上下文。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.