diff --git a/FreeSql.DbContext/DbSet/DbSetAsync.cs b/FreeSql.DbContext/DbSet/DbSetAsync.cs index 5863b766..e4fbc75d 100644 --- a/FreeSql.DbContext/DbSet/DbSetAsync.cs +++ b/FreeSql.DbContext/DbSet/DbSetAsync.cs @@ -271,7 +271,7 @@ namespace FreeSql } for (var midcolidx = tref.Columns.Count; midcolidx < tref.MiddleColumns.Count; midcolidx++) { - var refcol = tref.Columns[midcolidx - tref.Columns.Count]; + var refcol = tref.RefColumns[midcolidx - tref.Columns.Count]; var refval = FreeSql.Internal.Utils.GetDataReaderValue(tref.MiddleColumns[midcolidx].CsType, _db.Orm.GetEntityValueWithPropertyName(tref.RefEntityType, curItem, refcol.CsName)); _db.Orm.SetEntityValueWithPropertyName(tref.RefMiddleEntityType, newItem, tref.MiddleColumns[midcolidx].CsName, refval); } diff --git a/FreeSql.DbContext/DbSet/DbSetSync.cs b/FreeSql.DbContext/DbSet/DbSetSync.cs index 4f7f2701..c2bbbbbd 100644 --- a/FreeSql.DbContext/DbSet/DbSetSync.cs +++ b/FreeSql.DbContext/DbSet/DbSetSync.cs @@ -283,7 +283,7 @@ namespace FreeSql } for (var midcolidx = tref.Columns.Count; midcolidx < tref.MiddleColumns.Count; midcolidx++) { - var refcol = tref.Columns[midcolidx - tref.Columns.Count]; + var refcol = tref.RefColumns[midcolidx - tref.Columns.Count]; var refval = FreeSql.Internal.Utils.GetDataReaderValue(tref.MiddleColumns[midcolidx].CsType, _db.Orm.GetEntityValueWithPropertyName(tref.RefEntityType, curItem, refcol.CsName)); _db.Orm.SetEntityValueWithPropertyName(tref.RefMiddleEntityType, newItem, tref.MiddleColumns[midcolidx].CsName, refval); } diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index dc0203b8..d9f91124 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -110,6 +110,13 @@ 清空状态数据 + + + 根据 lambda 条件删除数据 + + + + 添加 diff --git a/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.xml b/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.xml index 5b80bfb0..d6732b50 100644 --- a/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.xml +++ b/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.xml @@ -389,80 +389,170 @@ 验证标志 - + 部门表 - + 部门ID - - - 员工列表 对应employee.deptid - - - + 上级部门ID - + 上级部门对象 - + 部门主管ID - + 部门主管对象 - - - 下级部门列表 - - - + 部门代码 - + 部门名称 - + 员工表 - + 员工ID - + + + 考勤号码 + + + + + 编号 + + + + + 身份证 + + + + + 姓名 + + + + + 职务 + + + + + 生日 + + + + + 入职时间 + + + + + 合同日期 + + + + + 家庭地址 + + + + + 邮编 + + + + + 办公电话 + + + + + 行动电话 + + + + + 家庭电话 + + + + + 卡号 + + + + + 邮件地址 + + + + + 身份证有效期 + + + + + 籍贯 + + + + + 民族 + + + + + 离职日期 + + + + + 登录密码 + + + + + 相片地址 + + + + + 上级主管ID + + + 上级主管对象 - - - 下级员工列表 - - - - - 部门对象 - - diff --git a/FreeSql.Tests/FreeSql.Tests/Other/kwlib/department_employee.cs b/FreeSql.Tests/FreeSql.Tests/Other/kwlib/department_employee.cs deleted file mode 100644 index 8c20b8e1..00000000 --- a/FreeSql.Tests/FreeSql.Tests/Other/kwlib/department_employee.cs +++ /dev/null @@ -1,20 +0,0 @@ -using FreeSql.DataAnnotations; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace kwlib -{ - public class department_employee - { - public int departmentId { get; set; } - public int employeeId { get; set; } - - [Navigate("departmentId")] - public department dept { get; set; } - [Navigate("employeeId")] - public employee empe { get; set; } - } -} diff --git a/FreeSql.Tests/FreeSql.Tests/Other/kwlib/department_userinfo.cs b/FreeSql.Tests/FreeSql.Tests/Other/kwlib/department_userinfo.cs new file mode 100644 index 00000000..8baea7f0 --- /dev/null +++ b/FreeSql.Tests/FreeSql.Tests/Other/kwlib/department_userinfo.cs @@ -0,0 +1,22 @@ +using FreeSql.DataAnnotations; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace kwlib +{ + public class department_userinfo + { + public int departmentsId { get; set; } + public int userinfoId { get; set; } + + [Navigate("departmentsId")] + public departments dept { get; set; } + + + [Navigate("userinfoId")] + public userinfo emp { get; set; } + } +} diff --git a/FreeSql.Tests/FreeSql.Tests/Other/kwlib/department.cs b/FreeSql.Tests/FreeSql.Tests/Other/kwlib/departments.cs similarity index 64% rename from FreeSql.Tests/FreeSql.Tests/Other/kwlib/department.cs rename to FreeSql.Tests/FreeSql.Tests/Other/kwlib/departments.cs index 1f3a5ccf..10475cc2 100644 --- a/FreeSql.Tests/FreeSql.Tests/Other/kwlib/department.cs +++ b/FreeSql.Tests/FreeSql.Tests/Other/kwlib/departments.cs @@ -13,19 +13,19 @@ namespace kwlib /// [Serializable] [Index("部门代码deptcode唯一", "deptcode", true)] - public class department + public class departments { /// /// 部门ID /// [Column(IsPrimary = true, IsIdentity = true)] - public int id { get; set; } + public int deptid { get; set; } - /// - /// 员工列表 对应employee.deptid - /// - [Navigate("deptid")] - public List Employees { get; set; } + ///// + ///// 员工列表 对应employee.deptid + ///// + //[Navigate("deptid")] + //public List Employees { get; set; } /// /// 上级部门ID @@ -35,7 +35,7 @@ namespace kwlib /// 上级部门对象 /// [Navigate("supdeptid")] - public department parentdepartments { get; set; } + public departments pDepartments { get; set; } /// /// 部门主管ID @@ -45,18 +45,18 @@ namespace kwlib /// 部门主管对象 /// [Navigate("managerid")] - public employee manager { get; set; } + public userinfo manager { get; set; } - /// - /// 下级部门列表 - /// - [Navigate("supdeptid")] - public List childDepartments { get; set; } + ///// + ///// 下级部门列表 + ///// + //[Navigate("supdeptid")] + //public List childDepartments { get; set; } - [Navigate(ManyToMany = typeof(department_employee))] - public List employees22 { get; set; } + [Navigate(ManyToMany = typeof(department_userinfo))] + public List employeesMany { get; set; } #region MyRegion diff --git a/FreeSql.Tests/FreeSql.Tests/Other/kwlib/employee.cs b/FreeSql.Tests/FreeSql.Tests/Other/kwlib/userinfo1.cs similarity index 50% rename from FreeSql.Tests/FreeSql.Tests/Other/kwlib/employee.cs rename to FreeSql.Tests/FreeSql.Tests/Other/kwlib/userinfo1.cs index 9b292e89..7f7dcbe1 100644 --- a/FreeSql.Tests/FreeSql.Tests/Other/kwlib/employee.cs +++ b/FreeSql.Tests/FreeSql.Tests/Other/kwlib/userinfo1.cs @@ -11,151 +11,190 @@ namespace kwlib /// 员工表 /// [Serializable] - [Index("员工代码empcode唯一", "empcode", true)] - public class employee + [Index("员工代码badgenumber唯一", "badgenumber", true)] + public class userinfo { - - /// /// 员工ID /// [Column(IsPrimary = true, IsIdentity = true)] [System.ComponentModel.DisplayName("员工ID ")] - public int id { get; set; } + public int userid { get; set; } + + /// + /// 考勤号码 + /// + [System.ComponentModel.DisplayName("考勤号码")] + public String badgenumber { get; set; } + + + /// + /// 编号 + /// + [System.ComponentModel.DisplayName("编号")] + + public string ssn { get; set; } + + /// + /// 身份证 + /// + [System.ComponentModel.DisplayName("身份证/证件号")] + public String IDCardNo { get; set; } + + /// + /// 姓名 + /// + [System.ComponentModel.DisplayName("姓名")] + public String name { get; set; } + + + + /// + /// 职务 + /// + [System.ComponentModel.DisplayName("职务")] + public string title { get; set; } + + + /// + /// 生日 + /// + [System.ComponentModel.DisplayName("生日 ")] + public DateTime? birthday { get; set; } + /// + /// 入职时间 + /// + [System.ComponentModel.DisplayName("入职时间")] + public DateTime? hiredday { get; set; } + /// + /// 合同日期 + /// + [System.ComponentModel.DisplayName("合同日期")] + public DateTime? hetongdate { get; set; } + + /// + /// 家庭地址 + /// + [System.ComponentModel.DisplayName("家庭地址")] + public String street { get; set; } + + /// + /// 邮编 + /// + [System.ComponentModel.DisplayName("邮编")] + public String zip { get; set; } + + /// + /// 办公电话 + /// + [System.ComponentModel.DisplayName("办公电话")] + public String ophone { get; set; } + + + /// + /// 行动电话 + /// + [System.ComponentModel.DisplayName("行动电话")] + public string pager { get; set; } + + /// + /// 家庭电话 + /// + [System.ComponentModel.DisplayName("家庭电话")] + public String fphone { get; set; } + + /// + /// 卡号 + /// + [System.ComponentModel.DisplayName("卡号 ")] + public String CardNo { get; set; } + + /// + /// 邮件地址 + /// + [System.ComponentModel.DisplayName("邮件地址 ")] + public String email { get; set; } + + + /// + /// 身份证有效期 + /// + [System.ComponentModel.DisplayName("身份证有效期 ")] + public DateTime idcardvalidtime { get; set; } = new DateTime(2099, 12, 31); + + + + /// + /// 籍贯 + /// + [System.ComponentModel.DisplayName("籍贯")] + public String homeaddress { get; set; } + + /// + /// 民族 + /// + [System.ComponentModel.DisplayName("民族")] + public string minzu { get; set; } + + /// + /// 离职日期 + /// + [System.ComponentModel.DisplayName("离职日期")] + public DateTime? leavedate { get; set; } + + /// + /// 登录密码 + /// + [System.ComponentModel.DisplayName("登录密码")] + public String loginpass { get; set; } + + + /// + /// 相片地址 + /// + [System.ComponentModel.DisplayName("相片地址")] + public String picurl { get; set; } - [System.ComponentModel.DisplayName("上级主管ID")] /// /// 上级主管ID /// + [System.ComponentModel.DisplayName("上级主管ID")] public int? managerid { get; set; } /// /// 上级主管对象 /// [Navigate("managerid")] - public employee parentManager { get; set; } - - /// - /// 下级员工列表 - /// - [Navigate("managerid")] - public List Employees { get; set; } - - - [Navigate(ManyToMany = typeof(department_employee))] - public List departments { get; set; } - - [System.ComponentModel.DisplayName("部门ID ")] - /// - /// 部门ID - /// - public int? deptid { get; set; } - /// - /// 部门对象 - /// - [Navigate("deptid")] - public department Department { get; set; } + public userinfo pManager { get; set; } + + + + [Navigate(ManyToMany = typeof(department_userinfo))] + public List departments { get; set; } + + + + + + + + + + + + - [System.ComponentModel.DisplayName("员工工号")] - /// - /// 员工工号 - /// - public String empcode { get; set; } - [System.ComponentModel.DisplayName("员工姓名")] - /// - /// 员工姓名 - /// - public String empname { get; set; } - - - [System.ComponentModel.DisplayName("地址")] - /// - /// 地址 - /// - public String address { get; set; } - - - [System.ComponentModel.DisplayName("工卡ID ")] - /// - /// 工卡ID - /// - - public String cardid { get; set; } - - - [System.ComponentModel.DisplayName("邮件地址 ")] - /// - /// 邮件地址 - /// - - public String email { get; set; } - - - [System.ComponentModel.DisplayName("合同日期")] - /// - /// 合同日期 - /// - - public DateTime? hetongdate { get; set; } - - - [System.ComponentModel.DisplayName("籍贯")] - /// - /// 籍贯 - /// - - public String homeaddress { get; set; } - - - [System.ComponentModel.DisplayName("入职时间")] - /// - /// 入职时间 - /// - - public DateTime jointime { get; set; } - - - [System.ComponentModel.DisplayName("离职日期")] - /// - /// 离职日期 - /// - public DateTime? leavedate { get; set; } - - - [System.ComponentModel.DisplayName("登录密码")] - /// - /// 登录密码 - /// - public String loginpass { get; set; } - [System.ComponentModel.DisplayName("电话")] - /// - /// 电话 - /// - public String phone { get; set; } - - - [System.ComponentModel.DisplayName("相片地址")] - /// - /// 相片地址 - /// - - public String picurl { get; set; } - [System.ComponentModel.DisplayName("身份证")] - /// - /// 身份证 - /// - public String sfz { get; set; } } diff --git a/FreeSql.Tests/FreeSql.Tests/UnitTest2.cs b/FreeSql.Tests/FreeSql.Tests/UnitTest2.cs index feb4a6c3..b8def659 100644 --- a/FreeSql.Tests/FreeSql.Tests/UnitTest2.cs +++ b/FreeSql.Tests/FreeSql.Tests/UnitTest2.cs @@ -230,6 +230,17 @@ namespace FreeSql.Tests [Fact] public void Test02() { + var u1 = new userinfo { + name = "111", + departments = new List(new[]{ + new departments { deptname = "dep1" }, + new departments { deptname = "dep1" } + }) + }; + var kwrepo = g.sqlite.GetRepository(); + kwrepo.Insert(u1); + + g.sqlite.GlobalFilter.Apply("gft1", a => a.rowstate > -1) .Apply("gft2", a => a.rowstate > -2) .Apply("gft3", a => a.rowstate > -3); @@ -279,8 +290,6 @@ namespace FreeSql.Tests var gft2 = g.mysql.Select().Where(a => a.id == Guid.NewGuid()).ToList(); var gft3 = g.mysql.Select().Where(a => a.id == Guid.NewGuid()).ToList(); - var tekset = g.sqlite.Select().IncludeMany(a => a.departments).ToList(); - g.sqlserver.Delete().Where("1=1").ExecuteAffrows(); g.mysql.Delete().Where("1=1").ExecuteAffrows(); g.pgsql.Delete().Where("1=1").ExecuteAffrows();