zoukankan      html  css  js  c++  java
  • EFCore 2.0的IEntityTypeConfiguration<TEntity>的使用!

    通过新建一个类来实现  IEntityTypeConfiguration 这个接口,将EFCore中的实体配置写在单独的配置类中,便于修改和维护。

      OnModelCreating代码:

        

    protected override void OnModelCreating(ModelBuilder modelBuilder)
            {
                base.OnModelCreating(modelBuilder);
    
                modelBuilder.Entity<Class>().ToTable("T_Classs");
    
                modelBuilder.Entity<Teachers>().ToTable("T_Teachers");
    
                //modelBuilder.Entity<Students>()    //这是EF 2.0之前版本将配置写在OnModelCreating方法中的写法
                //    .ToTable("T_Students")
                //    .HasOne(s => s.Class)
                //    .WithMany(e => e.Students)
                //    .HasForeignKey(e => e.ClassId);
    
                modelBuilder.ApplyConfiguration(new StudentCofig());  //这是将单独的配置类注册到OnModelCreating中
    
                modelBuilder.ApplyConfiguration(new TeacherClassConfig());
                   
    
            }

      新建的实体配置类:

      

    using Microsoft.EntityFrameworkCore;
    using Microsoft.EntityFrameworkCore.Metadata.Builders;
    using MyEF2.Models;
    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace MyEF2.Configuration
    {
        public class StudentCofig : IEntityTypeConfiguration<Students>  //继承该接口
        {
            public void Configure(EntityTypeBuilder<Students> builder)
            {
                builder.ToTable("T_Students")
                    .HasOne(s => s.Class)
                    .WithMany(e => e.Students)
                    .HasForeignKey(e => e.ClassId);
            }
        }
    }

      最后在MyDbContext中的OnModelCreating方法中注册:

        

    protected override void OnModelCreating(ModelBuilder modelBuilder)
            {
                base.OnModelCreating(modelBuilder);
    
                modelBuilder.Entity<Class>().ToTable("T_Classs");
    
                modelBuilder.Entity<Teachers>().ToTable("T_Teachers");
    
                modelBuilder.ApplyConfiguration(new StudentCofig());  //这是将单独的配置类注册到OnModelCreating中
    
                modelBuilder.ApplyConfiguration(new TeacherClassConfig());
                   
    
            }

        

  • 相关阅读:
    如何编译Linux内核
    linux启动过程
    linux ifconfig
    Android 4.0 x86安装教程 附带联网参数详细设置
    linux ntfs模块
    Java 入门进阶
    深入理解Java中的String
    Java中字符串string的数据类型
    IDEA设置JVM运行参数
    Java11实战:模块化的 Netty RPC 服务项目
  • 原文地址:https://www.cnblogs.com/ROOKIEDEBUG/p/9289263.html
Copyright © 2011-2022 走看看