mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-19 04:18:16 +08:00
- 调整 DbSet/Repository DeleteCascadeByDatabase/Delete 区别于数据库/内存的级联删除;#609
This commit is contained in:
@ -13,15 +13,27 @@ namespace FreeSql.Tests
|
||||
public void DeleteCascade()
|
||||
{
|
||||
var fsql = g.sqlite;
|
||||
fsql.Delete<DeleteCascadeUserGroup>().Where("1=1").ExecuteAffrows();
|
||||
fsql.Delete<DeleteCascadeUserExt>().Where("1=1").ExecuteAffrows();
|
||||
fsql.Delete<DeleteCascadeUser>().Where("1=1").ExecuteAffrows();
|
||||
fsql.Delete<DeleteCascadeUserTag>().Where("1=1").ExecuteAffrows();
|
||||
fsql.Delete<DeleteCascadeTag>().Where("1=1").ExecuteAffrows();
|
||||
|
||||
var groupRepo = fsql.GetRepository<DeleteCascadeUserGroup>();
|
||||
var userRepo = fsql.GetRepository<DeleteCascadeUser>();
|
||||
userRepo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
//OneToOne
|
||||
var userextRepo = fsql.GetRepository<DeleteCascadeUserExt>();
|
||||
var tagRepo = fsql.GetRepository<DeleteCascadeTag>();
|
||||
groupRepo.DbContextOptions.EnableCascadeSave = true;
|
||||
userRepo.DbContextOptions.EnableCascadeSave = true;
|
||||
userextRepo.DbContextOptions.EnableCascadeSave = true;
|
||||
tagRepo.DbContextOptions.EnableCascadeSave = true;
|
||||
|
||||
//OneToOne InDatabase
|
||||
fsql.Delete<DeleteCascadeUser>().Where("1=1").ExecuteAffrows();
|
||||
fsql.Delete<DeleteCascadeUserExt>().Where("1=1").ExecuteAffrows();
|
||||
var user = new DeleteCascadeUser { Username = "admin01", Password = "pwd01", UserExt = new DeleteCascadeUserExt { Remark = "用户备注01" } };
|
||||
userRepo.Insert(user);
|
||||
var ret = userRepo.DeleteCascade(user);
|
||||
var ret = userRepo.RemoveCascadeByDatabase(a => a.Id == user.Id);
|
||||
Assert.Equal(2, ret.Count);
|
||||
Assert.IsType<DeleteCascadeUserExt>(ret[0]);
|
||||
Assert.Equal(user.UserExt.UserId, (ret[0] as DeleteCascadeUserExt).UserId);
|
||||
@ -30,13 +42,29 @@ namespace FreeSql.Tests
|
||||
Assert.Equal(user.Id, (ret[1] as DeleteCascadeUser).Id);
|
||||
Assert.Equal(user.Username, (ret[1] as DeleteCascadeUser).Username);
|
||||
Assert.Equal(user.Password, (ret[1] as DeleteCascadeUser).Password);
|
||||
|
||||
//OneToOne 先删除 UserExt
|
||||
//OneToOne EnableCascadeSave InMemory
|
||||
fsql.Delete<DeleteCascadeUser>().Where("1=1").ExecuteAffrows();
|
||||
fsql.Delete<DeleteCascadeUserExt>().Where("1=1").ExecuteAffrows();
|
||||
user = new DeleteCascadeUser { Username = "admin01", Password = "pwd01", UserExt = new DeleteCascadeUserExt { Remark = "用户备注01" } };
|
||||
userRepo.Insert(user);
|
||||
ret = fsql.GetRepository<DeleteCascadeUserExt>().DeleteCascade(user.UserExt);
|
||||
Assert.True(user.Id > 0);
|
||||
Assert.True(user.UserExt.UserId > 0);
|
||||
var affrows = userRepo.Delete(user);
|
||||
Assert.Equal(2, affrows);
|
||||
Assert.Equal(0, user.Id);
|
||||
Assert.Equal("admin01", user.Username);
|
||||
Assert.Equal("pwd01", user.Password);
|
||||
Assert.True(user.UserExt.UserId > 0);
|
||||
Assert.Equal("用户备注01", user.UserExt.Remark);
|
||||
Assert.False(userRepo.Select.Any());
|
||||
Assert.False(userextRepo.Select.Any());
|
||||
|
||||
//OneToOne InDatabase 先删除 UserExt
|
||||
fsql.Delete<DeleteCascadeUser>().Where("1=1").ExecuteAffrows();
|
||||
fsql.Delete<DeleteCascadeUserExt>().Where("1=1").ExecuteAffrows();
|
||||
user = new DeleteCascadeUser { Username = "admin01", Password = "pwd01", UserExt = new DeleteCascadeUserExt { Remark = "用户备注01" } };
|
||||
userRepo.Insert(user);
|
||||
ret = userextRepo.RemoveCascadeByDatabase(a => a.UserId == user.UserExt.UserId);
|
||||
Assert.Equal(2, ret.Count);
|
||||
Assert.IsType<DeleteCascadeUserExt>(ret[1]);
|
||||
Assert.Equal(user.UserExt.UserId, (ret[1] as DeleteCascadeUserExt).UserId);
|
||||
@ -45,12 +73,31 @@ namespace FreeSql.Tests
|
||||
Assert.Equal(user.Id, (ret[0] as DeleteCascadeUser).Id);
|
||||
Assert.Equal(user.Username, (ret[0] as DeleteCascadeUser).Username);
|
||||
Assert.Equal(user.Password, (ret[0] as DeleteCascadeUser).Password);
|
||||
//OneToOne EnableCascadeSave InMemory 先删除 UserExt
|
||||
fsql.Delete<DeleteCascadeUser>().Where("1=1").ExecuteAffrows();
|
||||
fsql.Delete<DeleteCascadeUserExt>().Where("1=1").ExecuteAffrows();
|
||||
user = new DeleteCascadeUser { Username = "admin01", Password = "pwd01", UserExt = new DeleteCascadeUserExt { Remark = "用户备注01" } };
|
||||
userRepo.Insert(user);
|
||||
Assert.True(user.Id > 0);
|
||||
Assert.True(user.UserExt.UserId > 0);
|
||||
var userext = userextRepo.Where(a => a.UserId == user.Id).Include(a => a.User).First();
|
||||
Assert.NotNull(userext);
|
||||
Assert.Equal(user.UserExt.UserId, userext.UserId);
|
||||
Assert.Equal(user.Id, userext.User.Id);
|
||||
affrows = userextRepo.Delete(userext);
|
||||
Assert.Equal(2, affrows);
|
||||
Assert.Equal(0, userext.User.Id);
|
||||
Assert.Equal("admin01", userext.User.Username);
|
||||
Assert.Equal("pwd01", userext.User.Password);
|
||||
Assert.True(userext.UserId > 0);
|
||||
Assert.Equal("用户备注01", userext.Remark);
|
||||
Assert.False(userRepo.Select.Any());
|
||||
Assert.False(userextRepo.Select.Any());
|
||||
|
||||
//OneToMany
|
||||
//OneToMany InDatabase
|
||||
fsql.Delete<DeleteCascadeUserGroup>().Where("1=1").ExecuteAffrows();
|
||||
fsql.Delete<DeleteCascadeUser>().Where("1=1").ExecuteAffrows();
|
||||
fsql.Delete<DeleteCascadeUserExt>().Where("1=1").ExecuteAffrows();
|
||||
groupRepo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
var group = new DeleteCascadeUserGroup
|
||||
{
|
||||
GroupName = "group01",
|
||||
@ -65,7 +112,7 @@ namespace FreeSql.Tests
|
||||
Assert.Equal(group.Id, group.Users[0].GroupId);
|
||||
Assert.Equal(group.Id, group.Users[1].GroupId);
|
||||
Assert.Equal(group.Id, group.Users[2].GroupId);
|
||||
ret = groupRepo.DeleteCascade(group);
|
||||
ret = groupRepo.RemoveCascadeByDatabase(a => a.Id == group.Id);
|
||||
Assert.Equal(7, ret.Count);
|
||||
Assert.IsType<DeleteCascadeUserExt>(ret[0]);
|
||||
Assert.Equal(group.Users[0].UserExt.UserId, (ret[0] as DeleteCascadeUserExt).UserId);
|
||||
@ -91,8 +138,48 @@ namespace FreeSql.Tests
|
||||
Assert.IsType<DeleteCascadeUserGroup>(ret[6]);
|
||||
Assert.Equal(group.Id, (ret[6] as DeleteCascadeUserGroup).Id);
|
||||
Assert.Equal(group.GroupName, (ret[6] as DeleteCascadeUserGroup).GroupName);
|
||||
//OneToMany EnableCascadeSave InMemory
|
||||
fsql.Delete<DeleteCascadeUserGroup>().Where("1=1").ExecuteAffrows();
|
||||
fsql.Delete<DeleteCascadeUser>().Where("1=1").ExecuteAffrows();
|
||||
fsql.Delete<DeleteCascadeUserExt>().Where("1=1").ExecuteAffrows();
|
||||
group = new DeleteCascadeUserGroup
|
||||
{
|
||||
GroupName = "group01",
|
||||
Users = new List<DeleteCascadeUser>
|
||||
{
|
||||
new DeleteCascadeUser { Username = "admin01", Password = "pwd01", UserExt = new DeleteCascadeUserExt { Remark = "用户备注01" } },
|
||||
new DeleteCascadeUser { Username = "admin02", Password = "pwd02", UserExt = new DeleteCascadeUserExt { Remark = "用户备注02" } },
|
||||
new DeleteCascadeUser { Username = "admin03", Password = "pwd03", UserExt = new DeleteCascadeUserExt { Remark = "用户备注03" } },
|
||||
}
|
||||
};
|
||||
groupRepo.Insert(group);
|
||||
Assert.Equal(group.Id, group.Users[0].GroupId);
|
||||
Assert.Equal(group.Id, group.Users[1].GroupId);
|
||||
Assert.Equal(group.Id, group.Users[2].GroupId);
|
||||
affrows = groupRepo.Delete(group);
|
||||
Assert.Equal(7, affrows);
|
||||
Assert.Equal(0, group.Id);
|
||||
Assert.Equal("group01", group.GroupName);
|
||||
Assert.Equal(0, group.Users[0].Id);
|
||||
Assert.Equal("admin01", group.Users[0].Username);
|
||||
Assert.Equal("pwd01", group.Users[0].Password);
|
||||
Assert.True(group.Users[0].UserExt.UserId > 0);
|
||||
Assert.Equal("用户备注01", group.Users[0].UserExt.Remark);
|
||||
Assert.Equal(0, group.Users[1].Id);
|
||||
Assert.Equal("admin02", group.Users[1].Username);
|
||||
Assert.Equal("pwd02", group.Users[1].Password);
|
||||
Assert.True(group.Users[1].UserExt.UserId > 0);
|
||||
Assert.Equal("用户备注02", group.Users[1].UserExt.Remark);
|
||||
Assert.Equal(0, group.Users[2].Id);
|
||||
Assert.Equal("admin03", group.Users[2].Username);
|
||||
Assert.Equal("pwd03", group.Users[2].Password);
|
||||
Assert.True(group.Users[2].UserExt.UserId > 0);
|
||||
Assert.Equal("用户备注03", group.Users[2].UserExt.Remark);
|
||||
Assert.False(groupRepo.Select.Any());
|
||||
Assert.False(userRepo.Select.Any());
|
||||
Assert.False(userextRepo.Select.Any());
|
||||
|
||||
//ManyToMany
|
||||
//ManyToMany InDatabase
|
||||
fsql.Delete<DeleteCascadeUserGroup>().Where("1=1").ExecuteAffrows();
|
||||
fsql.Delete<DeleteCascadeUser>().Where("1=1").ExecuteAffrows();
|
||||
fsql.Delete<DeleteCascadeUserExt>().Where("1=1").ExecuteAffrows();
|
||||
@ -108,8 +195,8 @@ namespace FreeSql.Tests
|
||||
new DeleteCascadeTag { TagName = "tag07" },
|
||||
new DeleteCascadeTag { TagName = "tag08" },
|
||||
};
|
||||
fsql.GetRepository<DeleteCascadeTag>().Insert(tags);
|
||||
groupRepo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
tagRepo.Insert(tags);
|
||||
groupRepo.DbContextOptions.EnableCascadeSave = true;
|
||||
group = new DeleteCascadeUserGroup
|
||||
{
|
||||
GroupName = "group01",
|
||||
@ -124,7 +211,7 @@ namespace FreeSql.Tests
|
||||
Assert.Equal(group.Id, group.Users[0].GroupId);
|
||||
Assert.Equal(group.Id, group.Users[1].GroupId);
|
||||
Assert.Equal(group.Id, group.Users[2].GroupId);
|
||||
ret = groupRepo.DeleteCascade(group);
|
||||
ret = groupRepo.RemoveCascadeByDatabase(a => a.Id == group.Id);
|
||||
Assert.Equal(18, ret.Count);
|
||||
|
||||
Assert.IsType<DeleteCascadeUserExt>(ret[0]);
|
||||
@ -188,6 +275,62 @@ namespace FreeSql.Tests
|
||||
Assert.IsType<DeleteCascadeUserGroup>(ret[17]);
|
||||
Assert.Equal(group.Id, (ret[17] as DeleteCascadeUserGroup).Id);
|
||||
Assert.Equal(group.GroupName, (ret[17] as DeleteCascadeUserGroup).GroupName);
|
||||
|
||||
//ManyToMany EnableCascadeSave InMemory
|
||||
fsql.Delete<DeleteCascadeUserGroup>().Where("1=1").ExecuteAffrows();
|
||||
fsql.Delete<DeleteCascadeUser>().Where("1=1").ExecuteAffrows();
|
||||
fsql.Delete<DeleteCascadeUserExt>().Where("1=1").ExecuteAffrows();
|
||||
fsql.Delete<DeleteCascadeTag>().Where("1=1").ExecuteAffrows();
|
||||
fsql.Delete<DeleteCascadeUserTag>().Where("1=1").ExecuteAffrows();
|
||||
tags = new[] {
|
||||
new DeleteCascadeTag { TagName = "tag01" },
|
||||
new DeleteCascadeTag { TagName = "tag02" },
|
||||
new DeleteCascadeTag { TagName = "tag03" },
|
||||
new DeleteCascadeTag { TagName = "tag04" },
|
||||
new DeleteCascadeTag { TagName = "tag05" },
|
||||
new DeleteCascadeTag { TagName = "tag06" },
|
||||
new DeleteCascadeTag { TagName = "tag07" },
|
||||
new DeleteCascadeTag { TagName = "tag08" },
|
||||
};
|
||||
tagRepo.Insert(tags);
|
||||
groupRepo.DbContextOptions.EnableCascadeSave = true;
|
||||
group = new DeleteCascadeUserGroup
|
||||
{
|
||||
GroupName = "group01",
|
||||
Users = new List<DeleteCascadeUser>
|
||||
{
|
||||
new DeleteCascadeUser { Username = "admin01", Password = "pwd01", UserExt = new DeleteCascadeUserExt { Remark = "用户备注01" }, Tags = new List<DeleteCascadeTag> { tags[0], tags[2], tags[3], tags[6] } },
|
||||
new DeleteCascadeUser { Username = "admin02", Password = "pwd02", UserExt = new DeleteCascadeUserExt { Remark = "用户备注02" }, Tags = new List<DeleteCascadeTag> { tags[1], tags[2], tags[5] } },
|
||||
new DeleteCascadeUser { Username = "admin03", Password = "pwd03", UserExt = new DeleteCascadeUserExt { Remark = "用户备注03" }, Tags = new List<DeleteCascadeTag> { tags[3], tags[4], tags[6], tags[7] } },
|
||||
}
|
||||
};
|
||||
groupRepo.Insert(group);
|
||||
Assert.Equal(group.Id, group.Users[0].GroupId);
|
||||
Assert.Equal(group.Id, group.Users[1].GroupId);
|
||||
Assert.Equal(group.Id, group.Users[2].GroupId);
|
||||
affrows = groupRepo.Delete(group);
|
||||
Assert.Equal(18, affrows);
|
||||
Assert.Equal(0, group.Id);
|
||||
Assert.Equal("group01", group.GroupName);
|
||||
Assert.Equal(0, group.Users[0].Id);
|
||||
Assert.Equal("admin01", group.Users[0].Username);
|
||||
Assert.Equal("pwd01", group.Users[0].Password);
|
||||
Assert.True(group.Users[0].UserExt.UserId > 0);
|
||||
Assert.Equal("用户备注01", group.Users[0].UserExt.Remark);
|
||||
Assert.Equal(0, group.Users[1].Id);
|
||||
Assert.Equal("admin02", group.Users[1].Username);
|
||||
Assert.Equal("pwd02", group.Users[1].Password);
|
||||
Assert.True(group.Users[1].UserExt.UserId > 0);
|
||||
Assert.Equal("用户备注02", group.Users[1].UserExt.Remark);
|
||||
Assert.Equal(0, group.Users[2].Id);
|
||||
Assert.Equal("admin03", group.Users[2].Username);
|
||||
Assert.Equal("pwd03", group.Users[2].Password);
|
||||
Assert.True(group.Users[2].UserExt.UserId > 0);
|
||||
Assert.Equal("用户备注03", group.Users[2].UserExt.Remark);
|
||||
Assert.False(groupRepo.Select.Any());
|
||||
Assert.False(userRepo.Select.Any());
|
||||
Assert.False(userextRepo.Select.Any());
|
||||
Assert.False(fsql.Select<DeleteCascadeUserTag>().Any());
|
||||
}
|
||||
public class DeleteCascadeUser
|
||||
{
|
||||
@ -465,10 +608,10 @@ namespace FreeSql.Tests
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void EnableAddOrUpdateNavigate_OneToMany()
|
||||
public void EnableCascadeSave_OneToMany()
|
||||
{
|
||||
var repo = g.sqlite.GetRepository<Cagetory>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
var cts = new[] {
|
||||
new Cagetory
|
||||
{
|
||||
@ -528,10 +671,10 @@ namespace FreeSql.Tests
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void EnableAddOrUpdateNavigate_OneToMany_lazyloading()
|
||||
public void EnableCascadeSave_OneToMany_lazyloading()
|
||||
{
|
||||
var repo = g.sqlite.GetRepository<CagetoryLD>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
var cts = new[] {
|
||||
new CagetoryLD
|
||||
{
|
||||
@ -600,7 +743,7 @@ namespace FreeSql.Tests
|
||||
public void SaveMany_OneToMany()
|
||||
{
|
||||
var repo = g.sqlite.GetRepository<Cagetory>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = false; //关闭级联保存功能
|
||||
repo.DbContextOptions.EnableCascadeSave = false; //关闭级联保存功能
|
||||
var cts = new[] {
|
||||
new Cagetory
|
||||
{
|
||||
@ -649,7 +792,7 @@ namespace FreeSql.Tests
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void EnableAddOrUpdateNavigate_OneToMany_Parent()
|
||||
public void EnableCascadeSave_OneToMany_Parent()
|
||||
{
|
||||
g.sqlite.Delete<CagetoryParent>().Where("1=1").ExecuteAffrows();
|
||||
var repo = g.sqlite.GetRepository<CagetoryParent>();
|
||||
@ -674,7 +817,7 @@ namespace FreeSql.Tests
|
||||
})
|
||||
}
|
||||
};
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true; //打开级联保存功能
|
||||
repo.DbContextOptions.EnableCascadeSave = true; //打开级联保存功能
|
||||
repo.Insert(cts);
|
||||
|
||||
var notreelist1 = repo.Select.ToList();
|
||||
@ -707,7 +850,7 @@ namespace FreeSql.Tests
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void EnableAddOrUpdateNavigate_ManyToMany()
|
||||
public void EnableCascadeSave_ManyToMany()
|
||||
{
|
||||
var tags = new[] {
|
||||
new Tag { TagName = "流行" },
|
||||
@ -735,7 +878,7 @@ namespace FreeSql.Tests
|
||||
}
|
||||
};
|
||||
var repo = g.sqlite.GetRepository<Song>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true; //打开级联保存功能
|
||||
repo.DbContextOptions.EnableCascadeSave = true; //打开级联保存功能
|
||||
repo.Insert(ss);
|
||||
|
||||
ss[0].Tags[0].TagName = "流行101";
|
||||
|
@ -155,7 +155,7 @@ namespace FreeSql.Tests
|
||||
|
||||
g.sqlite.SetDbContextOptions(opt =>
|
||||
{
|
||||
//opt.EnableAddOrUpdateNavigate = false;
|
||||
//opt.EnableCascadeSave = false;
|
||||
});
|
||||
|
||||
g.mysql.Insert<testenumWhere>().AppendData(new testenumWhere { type = testenumWhereType.Blaaa }).ExecuteAffrows();
|
||||
@ -167,7 +167,7 @@ namespace FreeSql.Tests
|
||||
|
||||
using (var ctx = g.sqlite.CreateDbContext())
|
||||
{
|
||||
ctx.Options.EnableAddOrUpdateNavigate = true;
|
||||
ctx.Options.EnableCascadeSave = true;
|
||||
var tags = ctx.Set<Tag>().Select.IncludeMany(a => a.Tags).ToList();
|
||||
|
||||
var tag = new Tag
|
||||
@ -199,7 +199,7 @@ namespace FreeSql.Tests
|
||||
|
||||
using (var ctx = g.sqlite.CreateDbContext())
|
||||
{
|
||||
ctx.Options.EnableAddOrUpdateNavigate = true;
|
||||
ctx.Options.EnableCascadeSave = true;
|
||||
var tag = ctx.Set<Tag>().Select.First();
|
||||
tag.Tags.Add(new Tag { Name = "sub3" });
|
||||
tag.Name = Guid.NewGuid().ToString();
|
||||
|
@ -191,7 +191,7 @@ WHERE (exists(SELECT 1
|
||||
|
||||
g.gbase.Delete<District>().Where("1=1").ExecuteAffrows();
|
||||
var repo = g.gbase.GetRepository<District>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.Insert(new District
|
||||
{
|
||||
Code = "001",
|
||||
@ -1704,7 +1704,7 @@ WHERE (((cast(a.Id as varchar(8000))) in ( SELECT * FROM (SELECT FIRST 10 b.Titl
|
||||
var fsql = g.gbase;
|
||||
fsql.Delete<BaseDistrict>().Where("1=1").ExecuteAffrows();
|
||||
var repo = fsql.GetRepository<VM_District_Child>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.DbContextOptions.NoneParameter = true;
|
||||
repo.Insert(new VM_District_Child
|
||||
{
|
||||
|
@ -384,7 +384,7 @@ WHERE (((a.`Name`) in (SELECT s.`Title` as1
|
||||
|
||||
g.mysql.Delete<District>().Where("1=1").ExecuteAffrows();
|
||||
var repo = g.mysql.GetRepository<District>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.Insert(new District
|
||||
{
|
||||
Code = "001",
|
||||
@ -2001,7 +2001,7 @@ WHERE ((b.`IsFinished` OR a.`TaskType` = 3) AND b.`EnabledMark` = 1)", groupsql1
|
||||
var fsql = g.mysql;
|
||||
fsql.Delete<BaseDistrict>().Where("1=1").ExecuteAffrows();
|
||||
var repo = fsql.GetRepository<VM_District_Child>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.DbContextOptions.NoneParameter = true;
|
||||
repo.Insert(new VM_District_Child
|
||||
{
|
||||
|
@ -194,7 +194,7 @@ namespace FreeSql.Tests.Odbc.Dameng
|
||||
|
||||
g.dameng.Delete<District>().Where("1=1").ExecuteAffrows();
|
||||
var repo = g.dameng.GetRepository<District>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.Insert(new District
|
||||
{
|
||||
Code = "001",
|
||||
@ -1728,7 +1728,7 @@ WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE""
|
||||
var fsql = g.dameng;
|
||||
fsql.Delete<BaseDistrict>().Where("1=1").ExecuteAffrows();
|
||||
var repo = fsql.GetRepository<VM_District_Child>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.DbContextOptions.NoneParameter = true;
|
||||
repo.Insert(new VM_District_Child
|
||||
{
|
||||
|
@ -185,7 +185,7 @@ namespace FreeSql.Tests.Odbc.Default
|
||||
|
||||
g.odbc.Delete<District>().Where("1=1").ExecuteAffrows();
|
||||
var repo = g.odbc.GetRepository<District>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.Insert(new District
|
||||
{
|
||||
Code = "001",
|
||||
@ -1517,7 +1517,7 @@ WHERE (((cast(a.[Id] as nvarchar)) in (SELECT b.[Title]
|
||||
var fsql = g.odbc;
|
||||
fsql.Delete<BaseDistrict>().Where("1=1").ExecuteAffrows();
|
||||
var repo = fsql.GetRepository<VM_District_Child>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.DbContextOptions.NoneParameter = true;
|
||||
repo.Insert(new VM_District_Child
|
||||
{
|
||||
|
@ -194,7 +194,7 @@ namespace FreeSql.Tests.Odbc.KingbaseES
|
||||
|
||||
g.kingbaseES.Delete<District>().Where("1=1").ExecuteAffrows();
|
||||
var repo = g.kingbaseES.GetRepository<District>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.Insert(new District
|
||||
{
|
||||
Code = "001",
|
||||
@ -1677,7 +1677,7 @@ WHERE ((((a.""ID"")::text) in (SELECT b.""TITLE""
|
||||
var fsql = g.kingbaseES;
|
||||
fsql.Delete<BaseDistrict>().Where("1=1").ExecuteAffrows();
|
||||
var repo = fsql.GetRepository<VM_District_Child>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.DbContextOptions.NoneParameter = true;
|
||||
repo.Insert(new VM_District_Child
|
||||
{
|
||||
|
@ -294,7 +294,7 @@ namespace FreeSql.Tests.Odbc.MySql
|
||||
|
||||
g.mysql.Delete<District>().Where("1=1").ExecuteAffrows();
|
||||
var repo = g.mysql.GetRepository<District>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.Insert(new District
|
||||
{
|
||||
Code = "001",
|
||||
@ -1881,7 +1881,7 @@ WHERE ((b.`IsFinished` OR a.`TaskType` = 3) AND b.`EnabledMark` = 1)", groupsql1
|
||||
var fsql = g.mysql;
|
||||
fsql.Delete<BaseDistrict>().Where("1=1").ExecuteAffrows();
|
||||
var repo = fsql.GetRepository<VM_District_Child>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.DbContextOptions.NoneParameter = true;
|
||||
repo.Insert(new VM_District_Child
|
||||
{
|
||||
|
@ -194,7 +194,7 @@ namespace FreeSql.Tests.Odbc.Oracle
|
||||
|
||||
g.oracle.Delete<District>().Where("1=1").ExecuteAffrows();
|
||||
var repo = g.oracle.GetRepository<District>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.Insert(new District
|
||||
{
|
||||
Code = "001",
|
||||
@ -1720,7 +1720,7 @@ WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE""
|
||||
var fsql = g.oracle;
|
||||
fsql.Delete<BaseDistrict>().Where("1=1").ExecuteAffrows();
|
||||
var repo = fsql.GetRepository<VM_District_Child>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.DbContextOptions.NoneParameter = true;
|
||||
repo.Insert(new VM_District_Child
|
||||
{
|
||||
|
@ -270,7 +270,7 @@ namespace FreeSql.Tests.Odbc.PostgreSQL
|
||||
|
||||
g.pgsql.Delete<District>().Where("1=1").ExecuteAffrows();
|
||||
var repo = g.pgsql.GetRepository<District>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.Insert(new District
|
||||
{
|
||||
Code = "001",
|
||||
@ -1780,7 +1780,7 @@ WHERE ((((a.""id"")::text) in (SELECT b.""title""
|
||||
var fsql = g.pgsql;
|
||||
fsql.Delete<BaseDistrict>().Where("1=1").ExecuteAffrows();
|
||||
var repo = fsql.GetRepository<VM_District_Child>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.DbContextOptions.NoneParameter = true;
|
||||
repo.Insert(new VM_District_Child
|
||||
{
|
||||
|
@ -184,7 +184,7 @@ namespace FreeSql.Tests.Odbc.SqlServer
|
||||
|
||||
g.sqlserver.Delete<District>().Where("1=1").ExecuteAffrows();
|
||||
var repo = g.sqlserver.GetRepository<District>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.Insert(new District
|
||||
{
|
||||
Code = "001",
|
||||
@ -1666,7 +1666,7 @@ WHERE (((cast(a.[Id] as nvarchar(100))) in (SELECT b.[Title]
|
||||
var fsql = g.sqlserver;
|
||||
fsql.Delete<BaseDistrict>().Where("1=1").ExecuteAffrows();
|
||||
var repo = fsql.GetRepository<VM_District_Child>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.DbContextOptions.NoneParameter = true;
|
||||
repo.Insert(new VM_District_Child
|
||||
{
|
||||
|
@ -532,7 +532,7 @@ WHERE ROWNUM < 11";
|
||||
).ToSql();
|
||||
|
||||
|
||||
g.mysql.SetDbContextOptions(opt => opt.EnableAddOrUpdateNavigate = true);
|
||||
g.mysql.SetDbContextOptions(opt => opt.EnableCascadeSave = true);
|
||||
var trepo = g.mysql.GetGuidRepository<TaskBuild>();
|
||||
trepo.Insert(new TaskBuild
|
||||
{
|
||||
|
@ -234,7 +234,7 @@ namespace FreeSql.Tests.Sqlite
|
||||
|
||||
g.sqlite.Delete<District>().Where("1=1").ExecuteAffrows();
|
||||
var repo = g.sqlite.GetRepository<District>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.Insert(new District
|
||||
{
|
||||
Code = "001",
|
||||
@ -2072,7 +2072,7 @@ WHERE (((cast(a.""Id"" as character)) in (SELECT b.""Title""
|
||||
var fsql = g.sqlite;
|
||||
fsql.Delete<BaseDistrict>().Where("1=1").ExecuteAffrows();
|
||||
var repo = fsql.GetRepository<VM_District_Child>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.DbContextOptions.NoneParameter = true;
|
||||
repo.Insert(new VM_District_Child
|
||||
{
|
||||
|
@ -309,7 +309,7 @@ WHERE (((a.""NAME"") in (SELECT s.""TITLE"" as1
|
||||
|
||||
g.dameng.Delete<District>().Where("1=1").ExecuteAffrows();
|
||||
var repo = g.dameng.GetRepository<District>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.Insert(new District
|
||||
{
|
||||
Code = "001",
|
||||
@ -1867,7 +1867,7 @@ WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE""
|
||||
var fsql = g.dameng;
|
||||
fsql.Delete<BaseDistrict>().Where("1=1").ExecuteAffrows();
|
||||
var repo = fsql.GetRepository<VM_District_Child>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.DbContextOptions.NoneParameter = true;
|
||||
repo.Insert(new VM_District_Child
|
||||
{
|
||||
|
@ -309,7 +309,7 @@ WHERE (((a.""NAME"") in (SELECT s.""TITLE"" as1
|
||||
|
||||
g.firebird.Delete<District>().Where("1=1").ExecuteAffrows();
|
||||
var repo = g.firebird.GetRepository<District>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.Insert(new District
|
||||
{
|
||||
Code = "001",
|
||||
@ -1834,7 +1834,7 @@ WHERE (((cast(a.""ID"" as blob sub_type 1)) in (SELECT FIRST 10 b.""TITLE""
|
||||
var fsql = g.firebird;
|
||||
fsql.Delete<BaseDistrict>().Where("1=1").ExecuteAffrows();
|
||||
var repo = fsql.GetRepository<VM_District_Child>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.DbContextOptions.NoneParameter = true;
|
||||
repo.Insert(new VM_District_Child
|
||||
{
|
||||
|
@ -194,7 +194,7 @@ namespace FreeSql.Tests.KingbaseES
|
||||
|
||||
g.kingbaseES.Delete<District>().Where("1=1").ExecuteAffrows();
|
||||
var repo = g.kingbaseES.GetRepository<District>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.Insert(new District
|
||||
{
|
||||
Code = "001",
|
||||
@ -1681,7 +1681,7 @@ WHERE ((((a.""ID"")::text) in (SELECT b.""TITLE""
|
||||
var fsql = g.kingbaseES;
|
||||
fsql.Delete<BaseDistrict>().Where("1=1").ExecuteAffrows();
|
||||
var repo = fsql.GetRepository<VM_District_Child>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.DbContextOptions.NoneParameter = true;
|
||||
repo.Insert(new VM_District_Child
|
||||
{
|
||||
|
@ -59,7 +59,7 @@ namespace FreeSql.Tests.Linq
|
||||
}
|
||||
};
|
||||
var repo = fsql.GetRepository<qt01>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.Insert(sd);
|
||||
|
||||
Assert.True(fsql.Select<qt01>().AsQueryable().Any());
|
||||
|
@ -300,7 +300,7 @@ WHERE (((a.[Name]) in (SELECT s.[Title] as as1
|
||||
|
||||
g.msaccess.Delete<District>().Where("1=1").ExecuteAffrows();
|
||||
var repo = g.msaccess.GetRepository<District>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.Insert(new District
|
||||
{
|
||||
Code = "001",
|
||||
@ -1645,7 +1645,7 @@ WHERE (((cstr(a.[Id])) in (SELECT TOP 10 b.[Title]
|
||||
var fsql = g.msaccess;
|
||||
fsql.Delete<BaseDistrict>().Where("1=1").ExecuteAffrows();
|
||||
var repo = fsql.GetRepository<VM_District_Child>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.DbContextOptions.NoneParameter = true;
|
||||
repo.Insert(new VM_District_Child
|
||||
{
|
||||
|
@ -427,7 +427,7 @@ WHERE (((a.`Name`) in (SELECT s.`Title` as1
|
||||
|
||||
g.mysql.Delete<District>().Where("1=1").ExecuteAffrows();
|
||||
var repo = g.mysql.GetRepository<District>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.Insert(new District
|
||||
{
|
||||
Code = "001",
|
||||
@ -2090,7 +2090,7 @@ WHERE ((b.`IsFinished` OR a.`TaskType` = 3) AND b.`EnabledMark` = 1)", groupsql1
|
||||
var fsql = g.mysql;
|
||||
fsql.Delete<BaseDistrict>().Where("1=1").ExecuteAffrows();
|
||||
var repo = fsql.GetRepository<VM_District_Child>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.DbContextOptions.NoneParameter = true;
|
||||
repo.Insert(new VM_District_Child
|
||||
{
|
||||
|
@ -309,7 +309,7 @@ WHERE (((a.""NAME"") in (SELECT s.""TITLE"" as1
|
||||
|
||||
g.oracle.Delete<District>().Where("1=1").ExecuteAffrows();
|
||||
var repo = g.oracle.GetRepository<District>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.Insert(new District
|
||||
{
|
||||
Code = "001",
|
||||
@ -1843,7 +1843,7 @@ WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE""
|
||||
var fsql = g.oracle;
|
||||
fsql.Delete<BaseDistrict>().Where("1=1").ExecuteAffrows();
|
||||
var repo = fsql.GetRepository<VM_District_Child>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.DbContextOptions.NoneParameter = true;
|
||||
repo.Insert(new VM_District_Child
|
||||
{
|
||||
|
@ -401,7 +401,7 @@ WHERE (((a.""name"") in (SELECT s.""title"" as1
|
||||
|
||||
g.pgsql.Delete<District>().Where("1=1").ExecuteAffrows();
|
||||
var repo = g.pgsql.GetRepository<District>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.Insert(new District
|
||||
{
|
||||
Code = "001",
|
||||
@ -1927,7 +1927,7 @@ WHERE ((((a.""id"")::text) in (SELECT b.""title""
|
||||
var fsql = g.pgsql;
|
||||
fsql.Delete<BaseDistrict>().Where("1=1").ExecuteAffrows();
|
||||
var repo = fsql.GetRepository<VM_District_Child>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.DbContextOptions.NoneParameter = true;
|
||||
repo.Insert(new VM_District_Child
|
||||
{
|
||||
|
@ -270,7 +270,7 @@ namespace FreeSql.Tests.ShenTong
|
||||
|
||||
g.shentong.Delete<District>().Where("1=1").ExecuteAffrows();
|
||||
var repo = g.shentong.GetRepository<District>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.Insert(new District
|
||||
{
|
||||
Code = "001",
|
||||
@ -1789,7 +1789,7 @@ WHERE ((((a.""ID"")::text) in (SELECT b.""TITLE""
|
||||
var fsql = g.shentong;
|
||||
fsql.Delete<BaseDistrict>().Where("1=1").ExecuteAffrows();
|
||||
var repo = fsql.GetRepository<VM_District_Child>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.DbContextOptions.NoneParameter = true;
|
||||
repo.Insert(new VM_District_Child
|
||||
{
|
||||
|
@ -306,7 +306,7 @@ WHERE (((a.[Name]) in (SELECT s.[Title] as1
|
||||
|
||||
g.sqlserver.Delete<District>().Where("1=1").ExecuteAffrows();
|
||||
var repo = g.sqlserver.GetRepository<District>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.Insert(new District
|
||||
{
|
||||
Code = "001",
|
||||
@ -1910,7 +1910,7 @@ INNER JOIN [TestTypeInfo] a__Type With(NoLock) ON a__Type.[Guid] = a.[Id]", sql2
|
||||
var fsql = g.sqlserver;
|
||||
fsql.Delete<BaseDistrict>().Where("1=1").ExecuteAffrows();
|
||||
var repo = fsql.GetRepository<VM_District_Child>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.DbContextOptions.NoneParameter = true;
|
||||
repo.Insert(new VM_District_Child
|
||||
{
|
||||
|
@ -354,7 +354,7 @@ WHERE (((a.""Name"") in (SELECT s.""Title"" as1
|
||||
|
||||
g.sqlite.Delete<District>().Where("1=1").ExecuteAffrows();
|
||||
var repo = g.sqlite.GetRepository<District>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.Insert(new District
|
||||
{
|
||||
Code = "001",
|
||||
@ -2217,7 +2217,7 @@ WHERE (((cast(a.""Id"" as character)) in (SELECT b.""Title""
|
||||
var fsql = g.sqlite;
|
||||
fsql.Delete<BaseDistrict>().Where("1=1").ExecuteAffrows();
|
||||
var repo = fsql.GetRepository<VM_District_Child>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.DbContextOptions.NoneParameter = true;
|
||||
repo.Insert(new VM_District_Child
|
||||
{
|
||||
|
@ -830,7 +830,7 @@ namespace FreeSql.Tests
|
||||
).ToSql();
|
||||
|
||||
|
||||
g.sqlite.SetDbContextOptions(opt => opt.EnableAddOrUpdateNavigate = true);
|
||||
g.sqlite.SetDbContextOptions(opt => opt.EnableCascadeSave = true);
|
||||
var trepo = g.sqlite.GetGuidRepository<TaskBuild>();
|
||||
trepo.Insert(new TaskBuild
|
||||
{
|
||||
@ -1146,7 +1146,7 @@ namespace FreeSql.Tests
|
||||
};
|
||||
|
||||
var repo = g.mysql.GetRepository<Order>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.Insert(neworder);
|
||||
|
||||
var order = g.mysql.Select<Order>().Where(a => a.Id == neworder.Id).ToOne(); //查询订单表
|
||||
|
@ -210,7 +210,7 @@ namespace FreeSql.Tests
|
||||
g.sqlite.Delete<tcate01>().Where("1=1").ExecuteAffrows();
|
||||
g.sqlite.Delete<tshop01>().Where("1=1").ExecuteAffrows();
|
||||
var tshoprepo = g.sqlite.GetRepository<tcate01>();
|
||||
tshoprepo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
tshoprepo.DbContextOptions.EnableCascadeSave = true;
|
||||
tshoprepo.Insert(new tcate01[]
|
||||
{
|
||||
new tcate01 { name = "tcate1", tshops = new List<tshop01>{ new tshop01(), new tshop01(), new tshop01() } },
|
||||
|
@ -304,7 +304,7 @@ GROUP BY a.""code"", a.""seqid"", a.""name""", sql);
|
||||
fsql.Delete<ts_otm_ll_02>().Where("1=1").ExecuteAffrows();
|
||||
|
||||
var repo = fsql.GetRepository<ts_otm_ll_01>();
|
||||
repo.DbContextOptions.EnableAddOrUpdateNavigate = true;
|
||||
repo.DbContextOptions.EnableCascadeSave = true;
|
||||
repo.Insert(new ts_otm_ll_01
|
||||
{
|
||||
name = "001",
|
||||
|
Reference in New Issue
Block a user