From 18e3d61c28c93b1d1b027779f04c5ec8f6b0f99e Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Sun, 28 Apr 2019 13:27:30 +0800 Subject: [PATCH] update --- CodeFirst.md | 2 + FluentApi.md | 2 + Home.md | 1 + _Sidebar.md | 1 + 从数据库导入特性.md | 2 + 实体关系.md | 101 ++++++++++++++++++++++++++++++++++++++++++++ 实体特性.md | 2 + 更新日志.md | 4 ++ 类型映射.md | 2 + 自定义特性.md | 2 + 10 files changed, 119 insertions(+) create mode 100644 实体关系.md diff --git a/CodeFirst.md b/CodeFirst.md index 0a0abc2..117ac4d 100644 --- a/CodeFirst.md +++ b/CodeFirst.md @@ -21,6 +21,8 @@ IFreeSql fsql = new FreeSql.FreeSqlBuilder() - [《类型映射,一览便知》](https://github.com/2881099/FreeSql/wiki/%e7%b1%bb%e5%9e%8b%e6%98%a0%e5%b0%84) +- [《导航关系配置》](https://github.com/2881099/FreeSql/wiki/%e5%ae%9e%e4%bd%93%e5%85%b3%e7%b3%bb) + ## 迁移结构 | 实体&表对比 | 添加 | 改名 | 删除 | diff --git a/FluentApi.md b/FluentApi.md index e259d6d..370b7ca 100644 --- a/FluentApi.md +++ b/FluentApi.md @@ -32,4 +32,6 @@ FluentApi 的命名与特性保持一致,有关说明请移步参考:[《实 - [《类型映射,一览便知》](https://github.com/2881099/FreeSql/wiki/%e7%b1%bb%e5%9e%8b%e6%98%a0%e5%b0%84) +- [《导航关系配置》](https://github.com/2881099/FreeSql/wiki/%e5%ae%9e%e4%bd%93%e5%85%b3%e7%b3%bb) + - [《CodeFirst模式开发介绍》](https://github.com/2881099/FreeSql/wiki/CodeFirst) \ No newline at end of file diff --git a/Home.md b/Home.md index 4917253..2c394b0 100644 --- a/Home.md +++ b/Home.md @@ -45,6 +45,7 @@ FreeSql是一个功能强大的NETStandard库,用于对象关系映射程序(O * [外部配置实体](https://github.com/2881099/FreeSql/wiki/FluentApi) * [自定义特性](https://github.com/2881099/FreeSql/wiki/%e8%87%aa%e5%ae%9a%e4%b9%89%e7%89%b9%e6%80%a7) * [类型映射](https://github.com/2881099/FreeSql/wiki/%e7%b1%bb%e5%9e%8b%e6%98%a0%e5%b0%84) + * [导航配置》](https://github.com/2881099/FreeSql/wiki/%e5%ae%9e%e4%bd%93%e5%85%b3%e7%b3%bb) * [迁移结构](https://github.com/2881099/FreeSql/wiki/CodeFirst#%e8%bf%81%e7%a7%bb%e7%bb%93%e6%9e%84) * [DbFirst](https://github.com/2881099/FreeSql/wiki/DbFirst) * [使用模板生成器](https://github.com/2881099/FreeSql/wiki/DbFirst#%e7%94%9f%e6%88%90%e5%99%a8) diff --git a/_Sidebar.md b/_Sidebar.md index 270f8a5..d59a8c5 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -31,6 +31,7 @@ * [外部配置实体](https://github.com/2881099/FreeSql/wiki/FluentApi) * [自定义特性](https://github.com/2881099/FreeSql/wiki/%e8%87%aa%e5%ae%9a%e4%b9%89%e7%89%b9%e6%80%a7) * [类型映射](https://github.com/2881099/FreeSql/wiki/%e7%b1%bb%e5%9e%8b%e6%98%a0%e5%b0%84) + * [导航配置》](https://github.com/2881099/FreeSql/wiki/%e5%ae%9e%e4%bd%93%e5%85%b3%e7%b3%bb) * [迁移结构](https://github.com/2881099/FreeSql/wiki/CodeFirst#%e8%bf%81%e7%a7%bb%e7%bb%93%e6%9e%84) * [DbFirst](https://github.com/2881099/FreeSql/wiki/DbFirst) * [使用模板生成器](https://github.com/2881099/FreeSql/wiki/DbFirst#%e7%94%9f%e6%88%90%e5%99%a8) diff --git a/从数据库导入特性.md b/从数据库导入特性.md index ed3ced8..2e87227 100644 --- a/从数据库导入特性.md +++ b/从数据库导入特性.md @@ -22,4 +22,6 @@ fsql.CodeFirst.IsConfigEntityFromDbFirst = true; - [《类型映射,一览便知》](https://github.com/2881099/FreeSql/wiki/%e7%b1%bb%e5%9e%8b%e6%98%a0%e5%b0%84) +- [《导航关系配置》](https://github.com/2881099/FreeSql/wiki/%e5%ae%9e%e4%bd%93%e5%85%b3%e7%b3%bb) + - [《CodeFirst模式开发介绍》](https://github.com/2881099/FreeSql/wiki/CodeFirst) \ No newline at end of file diff --git a/实体关系.md b/实体关系.md new file mode 100644 index 0000000..4de6824 --- /dev/null +++ b/实体关系.md @@ -0,0 +1,101 @@ +### OneToOne 一对一 +```csharp +class a { + public int id { get; set; } //id、objbid、objb_id + + public b objb { get; set; } +} + +class b { + public int id { get; set; } //id、objaid、obja_id + + public a obja { get; set; } +} +``` + +### ManyToOne 多对一 +```csharp +class a { + public int id { get; set; } +} + +class b { + public int id { get; set; } + + public int aid { get; set;} //id、aid、a_id + public a a { get; set; } + + public int xxx_id { get; set;} //id、xxxid、xxx_id + public a xxx_a { get; set; } //存在多个相同类型时,与上面的属性区分 +} +``` + +### OneToMany 一对多 +```csharp +class order { + public int id { get; set; } + + public ICollection items { get; set; } +} + +class item { + public int id { get; set; } + + public int orderid { get; set; } //orderid、order_id、a1id、a1_id +} +``` + +### Parent 父子 +```csharp +class order { + public int id { get; set; } + + public int parentid { get; set; } //parentid、parent_id + public order parent { get; set; } + + public ICollection orders { get; set; } +} +``` + +### ManyToMany 多对多 +```csharp +class Song { + [Column(IsIdentity = true)] + public int Id { get; set; } + public string Title { get; set; } + + public virtual ICollection Tags { get; set; } +} +class Song_tag { + public int Song_id { get; set; } + public virtual Song Song { get; set; } + + public int Tag_id { get; set; } + public virtual Tag Tag { get; set; } +} +class Tag { + [Column(IsIdentity = true)] + public int Id { get; set; } + public string Name { get; set; } + + public int? Parent_id { get; set; } + public virtual Tag Parent { get; set; } + + public virtual ICollection Songs { get; set; } + public virtual ICollection Tags { get; set; } +} +``` + +Song、Tag、Song_tag,这三个实体使用了 OneToMany、ManyToOne、Parent、ManyToMany 4种关系。 + +这里的关系可以改进,像 EFCore 那样做。 + +- [《实体特性说明》](https://github.com/2881099/FreeSql/wiki/%e5%ae%9e%e4%bd%93%e7%89%b9%e6%80%a7) + +- [《FluentApi,享受纯净实体类》](https://github.com/2881099/FreeSql/wiki/FluentApi) + +- [《从数据库导入特性,懒人专利》](https://github.com/2881099/FreeSql/wiki/%e4%bb%8e%e6%95%b0%e6%8d%ae%e5%ba%93%e5%af%bc%e5%85%a5%e7%89%b9%e6%80%a7) + +- [《Aop自定义特性,与其他 ORM 共用特性》](https://github.com/2881099/FreeSql/wiki/%e8%87%aa%e5%ae%9a%e4%b9%89%e7%89%b9%e6%80%a7) + +- [《类型映射,一览便知》](https://github.com/2881099/FreeSql/wiki/%e7%b1%bb%e5%9e%8b%e6%98%a0%e5%b0%84) diff --git a/实体特性.md b/实体特性.md index aff5f16..87e80ad 100644 --- a/实体特性.md +++ b/实体特性.md @@ -172,4 +172,6 @@ class Topic2 { - [《类型映射,一览便知》](https://github.com/2881099/FreeSql/wiki/%e7%b1%bb%e5%9e%8b%e6%98%a0%e5%b0%84) +- [《导航关系配置》](https://github.com/2881099/FreeSql/wiki/%e5%ae%9e%e4%bd%93%e5%85%b3%e7%b3%bb) + - [《CodeFirst模式开发介绍》](https://github.com/2881099/FreeSql/wiki/CodeFirst) \ No newline at end of file diff --git a/更新日志.md b/更新日志.md index 1f38934..75eb83a 100644 --- a/更新日志.md +++ b/更新日志.md @@ -1,6 +1,10 @@ 完整版本:年数-月-日-当日版本号,FreeSql、FreeSql.Repository、FreeSql.DbContext 版本号相同。 +## v0.5.6 + +- 优化 兼容不同数据库 bool 的表达式解析,如:Where(a => a.Bool)、Where(a => !a.Bool); + ## v0.5.5 - 增加 Column.MapType 类型映射,可将 enum 映射为 int/string 等; diff --git a/类型映射.md b/类型映射.md index a04272f..ddee17e 100644 --- a/类型映射.md +++ b/类型映射.md @@ -101,4 +101,6 @@ BigInteger 都可以映射使用了,但请注意:仅仅是 CURD 方便, Eq - [《Aop自定义特性,与其他 ORM 共用特性》](https://github.com/2881099/FreeSql/wiki/%e8%87%aa%e5%ae%9a%e4%b9%89%e7%89%b9%e6%80%a7) +- [《导航关系配置》](https://github.com/2881099/FreeSql/wiki/%e5%ae%9e%e4%bd%93%e5%85%b3%e7%b3%bb) + - [《CodeFirst模式开发介绍》](https://github.com/2881099/FreeSql/wiki/CodeFirst) \ No newline at end of file diff --git a/自定义特性.md b/自定义特性.md index 646e986..f42851c 100644 --- a/自定义特性.md +++ b/自定义特性.md @@ -35,4 +35,6 @@ class ModelAopConfigEntity { - [《类型映射,一览便知》](https://github.com/2881099/FreeSql/wiki/%e7%b1%bb%e5%9e%8b%e6%98%a0%e5%b0%84) +- [《导航关系配置》](https://github.com/2881099/FreeSql/wiki/%e5%ae%9e%e4%bd%93%e5%85%b3%e7%b3%bb) + - [《CodeFirst模式开发介绍》](https://github.com/2881099/FreeSql/wiki/CodeFirst) \ No newline at end of file