平時我們在使用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); }
動態加載,不用再一個一個寫了,簡單方便
