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());
                   
    
            }

        

  • 相关阅读:
    在meshLab的3D场景中绘制2D透明信息面板
    The Joint ISPRS Workshop on 3D City Modelling & Applications and the 6th 3D GeoInfo Conference
    shader概述
    QString和string互转中文字符
    virtualBox中安装Mac
    可视化排序(插入/选择/冒泡/快速/归并/Shell)
    PointCloud(2) procesing in ROS(PCL)
    蛋疼的回车换行(CR/LF)
    使用ItemData为树节点关联某个对象指针
    博客园标签云
  • 原文地址:https://www.cnblogs.com/ROOKIEDEBUG/p/9289263.html
Copyright © 2011-2022 走看看