CSFramework.EF ModelBuilder/OnModelCreating方法详解


EntityFramework EF DbModelBuilder/OnModelCreating方法详解

OnModelCreating方法详解

OnModelCreating方法是EntityFramework中的一个重要方法,用于在第一次创建模型时配置实体类型。它通常用于指定实体类的主键、外键、索引、关系等元数据信息。

OnModelCreating方法在DbContext类中重写,它接受一个ModelBuilder对象作为参数,通过该对象可以对实体类型进行配置。例如,可以使用ModelBuilder.Entity方法指定实体类型,并使用其它方法设置其属性、关系等元数据信息。

在使用OnModelCreating方法时,需要注意以下几点:

  1. OnModelCreating方法只会在第一次创建模型时被调用,之后再次调用该方法将不会生效。
  2. OnModelCreating方法只能用于配置实体类型的元数据信息,不能用于查询数据等操作。
  3. 在使用OnModelCreating方法配置实体类型时,应当特别注意遵循命名规范和数据类型规范,以确保代码的可读性和可维护性。

 

CSFramework.EF组件OnModelCreating方法使用

在初始化 CSFramework.EF组件时调用 Register 方法注册 ModelBuilder,参考下面代码:

C# 全选
 DatabaseEngine.ModelBuilders.Clear();
 
  //数据库引擎注册 ModelBuilder
  CSFramework.EF.DatabaseEngine.Register((builder) =>
  {
      //客户产品
      builder.Entity<dt_CustomerProduct>().Property(p => p.SellPrice).HasPrecision(18, 4);//设置小数位

      //成品
      builder.Entity<tb_SOs>().Property(p => p.Price).HasPrecision(18, 4);//设置小数位
      builder.Entity<tb_SRs>().Property(p => p.Price).HasPrecision(18, 4);//设置小数位
      builder.Entity<tb_DOs>().Property(p => p.Price).HasPrecision(18, 4);//设置小数位
      builder.Entity<tb_PFSummary>().Property(p => p.OrderPrice).HasPrecision(18, 4);//设置小数位
      builder.Entity<tb_IN_Cartons>().Property(p => p.Price).HasPrecision(18, 4);//设置小数位
      builder.Entity<tb_DO_Cartons>().Property(p => p.Price).HasPrecision(18, 4);//设置小数位
      builder.Entity<tb_Inventory_Cartons>().Property(p => p.Price).HasPrecision(18, 4);//设置小数位
      builder.Entity<tb_InventoryLog_Cartons>().Property(p => p.Price).HasPrecision(18, 4);//设置小数位

      //纸板
      builder.Entity<tb_POs>().Property(p => p.Price).HasPrecision(18, 4);//设置小数位
      builder.Entity<tb_IN_Papers>().Property(p => p.Price).HasPrecision(18, 4);//设置小数位
      builder.Entity<tb_IO_Papers>().Property(p => p.Price).HasPrecision(18, 4);//设置小数位
      builder.Entity<tb_Inventory_Papers>().Property(p => p.Price).HasPrecision(18, 4);//设置小数位
      builder.Entity<tb_InventoryLog_Papers>().Property(p => p.Price).HasPrecision(18, 4);//设置小数位
  });

 

 

版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
上一篇:ExecuteSql 执行SQL脚本/存储过程
下一篇:支持ADO.NET方法 返回DataTable/DataSet
评论列表

发表评论

评论内容
昵称:
关联文章

CSFramework.EF ModelBuilder/OnModelCreating方法详解
EntityFrameworkCore EF ModelBuilder/OnModelCreating方法详解
CSFramework.EF 数据库框架 - 测试 Add 方法新增对象
CSFramework.EF 数据库框架 - 测试同步方法
Entity Framework(EF):DbContextConfiguration属性详解
CSFramework.EF 数据库框架 - 使用 BeginTransation 方法启动事务
CSFramework.EF 数据库框架 - 测试 Remove 方法删除对象
CSFramework.EF 数据库框架 - 获取数据库元数据 (meta方法)
CSFramework.EF 数据库框架 - 测试异步方法 (Async)
CSFramework.EF 数据库框架 - 测试 Update 方法更新对象
CSFramework.EF 数据库框架 - Demo测试程序
Entity Framework(EF):测试DbContext.Remove方法,对象状态管理器(Object State Manager)
CSFramework.EF数据库初始化
Entity Framework(EF)测试DbContext.Database.ExecuteSqlCommand方法删除记录
C#.NET 实体框架EF(Entity Framework)详解
bllBaseDataDict.CreateDataBinder方法详解及性能优化
CSFramework.EF 数据库框架 - 支持达梦数据库
CSFramework.EF 数据库框架 - 测试 BulkInsert 方法极速插入对象
CSFramework.EF数据库框架简介(.NET8+EFCore)
CSFramework.EF 数据库框架支持Oracle+Schema