zoukankan      html  css  js  c++  java
  • .Net EF中DbContext动态生成DbSet

    平时我们在使用EF的过程中,都是有DbContext中每一个表加一个DbSet,如果我们一个项目有上千个表,就得加上千个DbSet,是很麻烦的一个工程,现在采用一个简单的方法处理,在DbContext类的OnModelCreating方法中加上如下代码:

    protected override void OnModelCreating(ModelBuilder modelBuilder)
            {
                var assembly = Assembly.GetExecutingAssembly();
                foreach (Type type in assembly.ExportedTypes)
                {
                    if (type.IsClass && type != typeof(EntityBase) && typeof(EntityBase).IsAssignableFrom(type))
                    {
                        var method = modelBuilder.GetType().GetMethods().Where(x => x.Name == "Entity").FirstOrDefault();
    
                        if (method != null)
                        {
                            method = method.MakeGenericMethod(new Type[] { type });
                            method.Invoke(modelBuilder, null);
                        }
                    }
                }
    
                base.OnModelCreating(modelBuilder);
            }

    动态加载,不用再一个一个写了,简单方便

  • 相关阅读:
    Python中的赋值(复制)、浅拷贝与深拷贝
    review
    Python网络编程
    云计算网络 ASW DSW CSW LSW
    Python文件操作 I/O
    RSI 指标
    python 常见模块
    Python模块和包
    读利弗莫尔
    GDP、CPI、M2
  • 原文地址:https://www.cnblogs.com/bluesky0122/p/11054380.html
Copyright © 2011-2022 走看看