1、配置EF与建立实体模型这里不做过多介绍、主要介绍如何动态映射实体模型

1.1、实现过程有很多种方式我们这里使用接口、然后扫描所有继承了该接口的实体类然后映射(也可以自行扩展使用特性)

首先我们新建一个接口:如下

接口是一个空接口主要起到标识作用需要扩展功能自己可以进行研究

1.2、然后我们在Mysqlbase类中重写OnModelCreating方法具体如下:

附上代码:

// OnModelCreating
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
foreach (var item in ReflectionHelper.CreateAllInstancesOf<ModelsInterface>())
{
modelBuilder.Model.AddEntityType(item);
}
base.OnModelCreating(modelBuilder);
}

然后这里使用到了ReflectionHelper.CreateAllInstancesOf<ModelsInterface>()这个方法的定义如下、作用就是获取Type实例

附上代码:

public class ReflectionHelper
{ public static IEnumerable<Type> CreateAllInstancesOf<T>()
{
return typeof(ReflectionHelper).Assembly.GetTypes() //获取当前类库下所有类型
.Where(t => typeof(T).IsAssignableFrom(t)) //获取间接或直接继承t的所有类型
.Where(t => !t.IsAbstract && t.IsClass); //获取非抽象类 排除接口继承
//.Select(t => (T)Activator.CreateInstance(t)); //创造实例,并返回结果(项目需求,可删除)
}
}

至此就完成了

最新文章

  1. ASP.NET MVC 3 网站优化总结(一) 使用 Gzip 压缩
  2. JSP分页显示
  3. WCF传输大数据的设置2
  4. WebApi系列~自主宿主HttpSelfHost的实现
  5. BroadcastReceive之ip拨号
  6. Cadence Allegro元件封装制作流程
  7. 获取ip的ip138.com
  8. 设计模式之---模板方法template method的使用
  9. hdu2175汉诺塔IX
  10. MaltReport2:基于 OpenDocument/OpenOfficeXML 的报表引擎
  11. VUE之图表操作
  12. 为什么Java的main方法必须是public static void?
  13. Delphi Sysem.JSON 链式写法(转全能中间件)
  14. SQL Server T—SQL 学生选课数据库SQL语句考试题(45道题)
  15. (转)面向对象——UML类图设计
  16. 【SQLSERVER】处理一对多标签的语法糖
  17. xpath定位中详解id 、starts-with、contains、text()和last() 的用法
  18. nginx高性能webserver具体解释(1)--安装nginx
  19. 手把手教你学node.js之学习使用外部模块
  20. js:关闭当前页面

热门文章

  1. [机器学习] 特征选择笔记4-使用SelectFromModel特征选择
  2. [R语言] ggplot2入门笔记2—通用教程ggplot2简介
  3. pycharm编辑器下载与使用
  4. Java语言发展史-计算机进制转换
  5. 读Java8函数式编程笔记01_Lambda表达式
  6. 了解 Transformers 是如何“思考”的
  7. magic-api数据库存储方案
  8. xml基本学习
  9. try...catch中finally子句的使用
  10. JavaScript的this指向详解