中国商标注册网查询网官网江苏网站seo营销模板
news/
2025/9/23 7:40:03/
文章来源:
中国商标注册网查询网官网,江苏网站seo营销模板,二级子域名ip,婚纱摄影哪家好FreeSql 支持 CodeFirst 迁移结构至数据库#xff0c;这应该是(O/RM)必须标配的一个功能。 与其他(O/RM)不同FreeSql支持更多的数据库特性#xff0c;而不只是支持基础的数据类型#xff0c;这既是优点也是缺点#xff0c;优点是充分利用数据库特性辅助开发#xff0c;缺点… FreeSql 支持 CodeFirst 迁移结构至数据库这应该是(O/RM)必须标配的一个功能。 与其他(O/RM)不同FreeSql支持更多的数据库特性而不只是支持基础的数据类型这既是优点也是缺点优点是充分利用数据库特性辅助开发缺点是切换数据库变得困难。不同程序员的理念可能不太一致作为功能库FreeSql支持到了极致至于是否使用是项目组技术衡量的另一个问题。 尽管多种数据库适配逻辑非常复杂FreeSql始终秉承优化程序开发习惯的原则尽量去实现中间碰到了一些非技术无法攻克的难题比如数据库的自定义类型和实体类本身就是一种冲突为了减少使用成本诸如此类的数据库功能没有得到支持。 IFreeSql fsql new FreeSql.FreeSqlBuilder().UseConnectionString(FreeSql.DataType.MySql, Data Source127.0.0.1;Port3306;User IDroot;Passwordroot;Initial Catalogcccddd;Charsetutf8;SslModenone;Max pool size10).UseAutoSyncStructure(true) //自动同步实体结构【开发环境必备】.Build(); 《实体特性说明》《FluentApi享受纯净实体类》《导入数据库特性懒人专利》《Aop自定义特性与其他 ORM 共用特性》《类型映射一览便知》《导航关系配置》迁移结构 实体表对比添加改名删除√√X实体属性字段对比添加修改可空修改自增修改类型改名删除备注√√√√√X√ 为了保证安全不提供删除字段。 警告如果实体类属性与数据库表字段不完整映射的时候未映射的字段有可能发生丢失。 原因某些迁移对比操作是创建临时表、导入旧表数据、删除旧表。 FreeSql提供两种CodeFirst移迁方法自动和手动。 自动同步实体结构【开发环境必备】 自动同步实体结构到数据库程序运行中检查实体表是否存在然后迁移执行创建或修改。 fsql.CodeFirst.IsAutoSyncDataStructure true; 此功能默认为开启状态发布正式环境后请修改此设置。 虽然【自动同步实体结构】功能开发非常好用但是有个坏处就是数据库后面会很乱没用的字段可能一大堆应尽量控制实体或属性命名的修改。 禁用迁移 当【实体类】对应的是数据库【视图】或者其他时可通过 [Table(DisableSyncStructure true)] 禁用指定的实体迁移操作。 [Table(DisableSyncStructure true)]
class ModelDisableSyncStructure {[Column(IsPrimary false)]public int pkid { get; set; }
} 备注 FreeSql CodeFirst 支持将 c# 代码内的注释迁移至数据库的备注。先决条件 1、实体类所在程序集需要开启 xml 文档功能 2、xml 文件必须与程序集同目录且文件名xxx.dll - xxx.xml 手工同步实体结构 提供接口方法实现对比实体与数据库中的变化部分返回SQL语句。 var t1 mysql.CodeFirst.GetComparisonDDLStatementsTopic();class Topic {[Column(IsIdentity true, IsPrimary true)]public int Id { get; set; }public int Clicks { get; set; }public string Title { get; set; }public DateTime CreateTime { get; set; }public ushort fusho { get; set; }
} CREATE TABLE IF NOT EXISTS cccddd.Topic ( Id INT(11) NOT NULL AUTO_INCREMENT, Clicks INT(11) NOT NULL, Title VARCHAR(255), CreateTime DATETIME NOT NULL, fusho SMALLINT(5) UNSIGNED NOT NULL, PRIMARY KEY (Id)
) EngineInnoDB CHARACTER SET utf8; 提供接口方法实现同步结构 var t2 fsql.CodeFirst.SyncStructureTopic();
//同步实体类型到数据库 实体特性 指定实体的表名指定 Name 后实体类名变化不影响数据库对应的表。FreeSql尽量支持了对多数据库或schema支持不防试试指定表名为其他数据库.表名不同数据库的指定方式有差异这一点以后深入解答。 [Table(Name db2.tb_topic111)]
class Topic {//...
} 无指定实体的表名修改为实体类名。指定数据库旧的表名修改实体命名时同时设置此参数为修改之前的值CodeFirst才可以正确修改数据库表否则将视为【创建新表】。 [Table(OldName Topic)]
class Topic2 {//...
} ALTER TABLE cccddd.Topic RENAME TO cccddd.Topic2; 修改字段类型把 Title 类型改为 varchar(128)。 [Column(DbType varchar(128))]
public string Title { get; set; } ALTER TABLE cccddd.Topic2 MODIFY Title VARCHAR(128); 指定属性的字段名这样指定后修改实体的属性名不影响数据库对应的列。 [Column(Name titl2)]
public string Title { get; set; } 无指定属性的字段名修改为属性名指定数据库旧的列名修改实体属性命名时同时设置此参数为修改之前的值CodeFirst才可以正确修改数据库字段否则将视为【新增字段】。 [Column(OldName Title2)]
public string Title { get; set; } ALTER TABLE cccddd.Topic2 CHANGE COLUMN Title2 Title VARCHAR(255); 系列文章导航 一入门二自动迁移实体三实体特性四实体特性 Fluent Api五插入数据六批量插入数据七插入数据时忽略列八插入数据时指定列九删除数据十更新数据十一更新数据 Where十二更新数据时指定列十三更新数据时忽略列十四批量更新数据十五查询数据十六分页查询十七联表查询十八导航属性十九多表查询二十多表查询 WhereCascade二十一查询返回数据二十二Dto 映射查询二十三分组、聚合二十四Linq To Sql 语法使用介绍二十五延时加载二十六贪婪加载 Include、IncludeMany、Dto、ToList二十七将已写好的 SQL 语句与实体类映射进行二次查询二十八事务二十九Lambda 表达式三十读写分离三十一分区分表三十二Aop三十三CodeFirst 类型映射三十四CodeFirst 迁移说明三十五CodeFirst 自定义特性转载于:https://www.cnblogs.com/FreeSql/p/11531550.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/911802.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!