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();