mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 02:32:50 +08:00
parent
86669a2d7f
commit
d8965d5749
@ -11,7 +11,7 @@
|
|||||||
<!--
|
<!--
|
||||||
经常出于版本交叉问题,暂时关闭,在每个项目上设置版本号
|
经常出于版本交叉问题,暂时关闭,在每个项目上设置版本号
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
@ -198,7 +198,7 @@ namespace base_entity
|
|||||||
|
|
||||||
public class SongRepository : BaseRepository<TUserImg, int>
|
public class SongRepository : BaseRepository<TUserImg, int>
|
||||||
{
|
{
|
||||||
public SongRepository(IFreeSql fsql) : base(fsql, null, null)
|
public SongRepository(IFreeSql fsql) : base(fsql)
|
||||||
{
|
{
|
||||||
//fsql.CodeFirst.Entity<TUserImg>(a =>
|
//fsql.CodeFirst.Entity<TUserImg>(a =>
|
||||||
// {
|
// {
|
||||||
@ -706,7 +706,6 @@ namespace base_entity
|
|||||||
var testRepo = fsql2.GetRepository<object>();
|
var testRepo = fsql2.GetRepository<object>();
|
||||||
testRepo.AsType(table.Type);
|
testRepo.AsType(table.Type);
|
||||||
testRepo.Insert(area1);
|
testRepo.Insert(area1);
|
||||||
testRepo.SaveMany(area1, "children");
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -59,12 +59,7 @@ namespace repository_01
|
|||||||
services.AddControllersWithViews();
|
services.AddControllersWithViews();
|
||||||
services.AddSingleton<IFreeSql>(Fsql);
|
services.AddSingleton<IFreeSql>(Fsql);
|
||||||
|
|
||||||
services.AddFreeRepository(filter =>
|
services.AddFreeRepository(this.GetType().Assembly);
|
||||||
{
|
|
||||||
filter
|
|
||||||
//.Apply<Song>("test", a => a.Title == DateTime.Now.ToString() + System.Threading.Thread.CurrentThread.ManagedThreadId)
|
|
||||||
.Apply<ISoftDelete>("softdelete", a => a.IsDeleted == false);
|
|
||||||
}, this.GetType().Assembly);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Configure(IApplicationBuilder app)
|
public void Configure(IApplicationBuilder app)
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<SignAssembly>true</SignAssembly>
|
<SignAssembly>true</SignAssembly>
|
||||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<LangVersion>latest</LangVersion>
|
<LangVersion>latest</LangVersion>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<SignAssembly>true</SignAssembly>
|
<SignAssembly>true</SignAssembly>
|
||||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
<Title>$(AssemblyName)</Title>
|
<Title>$(AssemblyName)</Title>
|
||||||
<IsPackable>true</IsPackable>
|
<IsPackable>true</IsPackable>
|
||||||
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
|
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<SignAssembly>true</SignAssembly>
|
<SignAssembly>true</SignAssembly>
|
||||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<SignAssembly>true</SignAssembly>
|
<SignAssembly>true</SignAssembly>
|
||||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
<PackageProjectUrl>https://github.com/2881099/FreeSql</PackageProjectUrl>
|
<PackageProjectUrl>https://github.com/2881099/FreeSql</PackageProjectUrl>
|
||||||
<RepositoryUrl>https://github.com/2881099/FreeSql</RepositoryUrl>
|
<RepositoryUrl>https://github.com/2881099/FreeSql</RepositoryUrl>
|
||||||
<PackageTags>FreeSql DbFirst 实体生成器</PackageTags>
|
<PackageTags>FreeSql DbFirst 实体生成器</PackageTags>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
<SignAssembly>true</SignAssembly>
|
<SignAssembly>true</SignAssembly>
|
||||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
<SignAssembly>true</SignAssembly>
|
<SignAssembly>true</SignAssembly>
|
||||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@ namespace FreeSql
|
|||||||
/// <typeparam name="TEntity"></typeparam>
|
/// <typeparam name="TEntity"></typeparam>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
IBaseRepository<TEntity> GetRepository<TEntity>() where TEntity : class;
|
IBaseRepository<TEntity> GetRepository<TEntity>() where TEntity : class;
|
||||||
|
IBaseRepository<TEntity, TKey> GetRepository<TEntity, TKey>() where TEntity : class;
|
||||||
}
|
}
|
||||||
|
|
||||||
class RepositoryUnitOfWork : UnitOfWork, IRepositoryUnitOfWork
|
class RepositoryUnitOfWork : UnitOfWork, IRepositoryUnitOfWork
|
||||||
|
@ -22,8 +22,8 @@ partial class FreeSqlDbContextExtensions
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="that"></param>
|
/// <param name="that"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static IUnitOfWork CreateUnitOfWork(this IFreeSql that)
|
public static IRepositoryUnitOfWork CreateUnitOfWork(this IFreeSql that)
|
||||||
{
|
{
|
||||||
return new UnitOfWork(that);
|
return new RepositoryUnitOfWork(that);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -17,7 +17,7 @@
|
|||||||
<SignAssembly>true</SignAssembly>
|
<SignAssembly>true</SignAssembly>
|
||||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -421,7 +421,7 @@ namespace FreeSql.Tests
|
|||||||
var item3 = new AddUpdateInfo();
|
var item3 = new AddUpdateInfo();
|
||||||
g.mysql.Insert(item3).ExecuteAffrows();
|
g.mysql.Insert(item3).ExecuteAffrows();
|
||||||
|
|
||||||
var repos = g.mysql.GetGuidRepository<AddUpdateInfo>();
|
var repos = g.mysql.GetRepository<AddUpdateInfo, Guid>();
|
||||||
var items = repos.Select.WhereDynamic(new[] { item1, item2, item3 }).ToList();
|
var items = repos.Select.WhereDynamic(new[] { item1, item2, item3 }).ToList();
|
||||||
items[0].Title = "88";
|
items[0].Title = "88";
|
||||||
//items[1].Title = "88";
|
//items[1].Title = "88";
|
||||||
@ -433,7 +433,7 @@ namespace FreeSql.Tests
|
|||||||
[Fact]
|
[Fact]
|
||||||
public void AddUpdate()
|
public void AddUpdate()
|
||||||
{
|
{
|
||||||
var repos = g.sqlite.GetGuidRepository<AddUpdateInfo>();
|
var repos = g.sqlite.GetRepository<AddUpdateInfo, Guid>();
|
||||||
|
|
||||||
var item = repos.Insert(new AddUpdateInfo());
|
var item = repos.Insert(new AddUpdateInfo());
|
||||||
Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(item));
|
Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(item));
|
||||||
@ -462,7 +462,7 @@ namespace FreeSql.Tests
|
|||||||
[Fact]
|
[Fact]
|
||||||
public void UpdateAttach()
|
public void UpdateAttach()
|
||||||
{
|
{
|
||||||
var repos = g.sqlite.GetGuidRepository<AddUpdateInfo>();
|
var repos = g.sqlite.GetRepository<AddUpdateInfo, Guid>();
|
||||||
|
|
||||||
var item = new AddUpdateInfo { Id = Guid.NewGuid() };
|
var item = new AddUpdateInfo { Id = Guid.NewGuid() };
|
||||||
repos.Attach(item);
|
repos.Attach(item);
|
||||||
@ -485,7 +485,7 @@ namespace FreeSql.Tests
|
|||||||
[Fact]
|
[Fact]
|
||||||
public void UpdateWhenNotExists()
|
public void UpdateWhenNotExists()
|
||||||
{
|
{
|
||||||
var repos = g.sqlite.GetGuidRepository<AddUpdateInfo>();
|
var repos = g.sqlite.GetRepository<AddUpdateInfo, Guid>();
|
||||||
|
|
||||||
var item = new AddUpdateInfo { Id = Guid.NewGuid() };
|
var item = new AddUpdateInfo { Id = Guid.NewGuid() };
|
||||||
item.Title = "xxx";
|
item.Title = "xxx";
|
||||||
@ -497,7 +497,7 @@ namespace FreeSql.Tests
|
|||||||
{
|
{
|
||||||
g.sqlite.Insert(new AddUpdateInfo()).ExecuteAffrows();
|
g.sqlite.Insert(new AddUpdateInfo()).ExecuteAffrows();
|
||||||
|
|
||||||
var repos = g.sqlite.GetGuidRepository<AddUpdateInfo>();
|
var repos = g.sqlite.GetRepository<AddUpdateInfo, Guid>();
|
||||||
|
|
||||||
var item = new AddUpdateInfo { Id = g.sqlite.Select<AddUpdateInfo>().First().Id };
|
var item = new AddUpdateInfo { Id = g.sqlite.Select<AddUpdateInfo>().First().Id };
|
||||||
|
|
||||||
@ -674,7 +674,6 @@ namespace FreeSql.Tests
|
|||||||
cts2[0].Goodss[0].Name += 123;
|
cts2[0].Goodss[0].Name += 123;
|
||||||
repo.Update(cts2[0]);
|
repo.Update(cts2[0]);
|
||||||
cts2[0].Goodss[0].Name += 333;
|
cts2[0].Goodss[0].Name += 333;
|
||||||
repo.SaveMany(cts2[0], "Goodss");
|
|
||||||
}
|
}
|
||||||
[Table(Name = "EAUNL_OTM_CT")]
|
[Table(Name = "EAUNL_OTM_CT")]
|
||||||
class Cagetory
|
class Cagetory
|
||||||
@ -737,13 +736,11 @@ namespace FreeSql.Tests
|
|||||||
cts2[0].Goodss[0].Name += 123;
|
cts2[0].Goodss[0].Name += 123;
|
||||||
repo.Update(cts2[0]);
|
repo.Update(cts2[0]);
|
||||||
cts2[0].Goodss[0].Name += 333;
|
cts2[0].Goodss[0].Name += 333;
|
||||||
repo.SaveMany(cts2[0], "Goodss");
|
|
||||||
|
|
||||||
cts2 = repo.Select.WhereDynamic(cts).ToList();
|
cts2 = repo.Select.WhereDynamic(cts).ToList();
|
||||||
cts2[0].Goodss[0].Name += 123;
|
cts2[0].Goodss[0].Name += 123;
|
||||||
repo.Update(cts2[0]);
|
repo.Update(cts2[0]);
|
||||||
cts2[0].Goodss[0].Name += 333;
|
cts2[0].Goodss[0].Name += 333;
|
||||||
repo.SaveMany(cts2[0], "Goodss");
|
|
||||||
}
|
}
|
||||||
[Table(Name = "EAUNL_OTM_CTLD")]
|
[Table(Name = "EAUNL_OTM_CTLD")]
|
||||||
public class CagetoryLD
|
public class CagetoryLD
|
||||||
@ -762,58 +759,6 @@ namespace FreeSql.Tests
|
|||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void SaveMany_OneToMany()
|
|
||||||
{
|
|
||||||
var repo = g.sqlite.GetRepository<Cagetory>();
|
|
||||||
repo.DbContextOptions.EnableCascadeSave = false; //关闭级联保存功能
|
|
||||||
var cts = new[] {
|
|
||||||
new Cagetory
|
|
||||||
{
|
|
||||||
Name = "分类1",
|
|
||||||
Goodss = new List<Goods>(new[]
|
|
||||||
{
|
|
||||||
new Goods { Name = "商品1" },
|
|
||||||
new Goods { Name = "商品2" },
|
|
||||||
new Goods { Name = "商品3" }
|
|
||||||
})
|
|
||||||
},
|
|
||||||
new Cagetory
|
|
||||||
{
|
|
||||||
Name = "分类2",
|
|
||||||
Goodss = new List<Goods>(new[]
|
|
||||||
{
|
|
||||||
new Goods { Name = "商品4" },
|
|
||||||
new Goods { Name = "商品5" }
|
|
||||||
})
|
|
||||||
}
|
|
||||||
};
|
|
||||||
repo.Insert(cts);
|
|
||||||
repo.SaveMany(cts[0], "Goodss"); //指定保存 Goodss 一对多属性
|
|
||||||
repo.SaveMany(cts[1], "Goodss"); //指定保存 Goodss 一对多属性
|
|
||||||
cts[0].Goodss.RemoveAt(1);
|
|
||||||
cts[1].Goodss.RemoveAt(1);
|
|
||||||
repo.SaveMany(cts[0], "Goodss"); //指定保存 Goodss 一对多属性
|
|
||||||
repo.SaveMany(cts[1], "Goodss"); //指定保存 Goodss 一对多属性
|
|
||||||
|
|
||||||
cts[0].Name = "分类11";
|
|
||||||
cts[0].Goodss.Clear();
|
|
||||||
cts[1].Name = "分类22";
|
|
||||||
cts[1].Goodss.Clear();
|
|
||||||
repo.Update(cts);
|
|
||||||
repo.SaveMany(cts[0], "Goodss"); //指定保存 Goodss 一对多属性
|
|
||||||
repo.SaveMany(cts[1], "Goodss"); //指定保存 Goodss 一对多属性
|
|
||||||
cts[0].Name = "分类111";
|
|
||||||
cts[0].Goodss.Clear();
|
|
||||||
cts[0].Goodss.Add(new Goods { Name = "商品33" });
|
|
||||||
cts[1].Name = "分类222";
|
|
||||||
cts[1].Goodss.Clear();
|
|
||||||
cts[1].Goodss.Add(new Goods { Name = "商品55" });
|
|
||||||
repo.Update(cts);
|
|
||||||
repo.SaveMany(cts[0], "Goodss"); //指定保存 Goodss 一对多属性
|
|
||||||
repo.SaveMany(cts[1], "Goodss"); //指定保存 Goodss 一对多属性
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void EnableCascadeSave_OneToMany_Parent()
|
public void EnableCascadeSave_OneToMany_Parent()
|
||||||
{
|
{
|
||||||
@ -905,7 +850,6 @@ namespace FreeSql.Tests
|
|||||||
repo.Insert(ss);
|
repo.Insert(ss);
|
||||||
|
|
||||||
ss[0].Tags[0].TagName = "流行101";
|
ss[0].Tags[0].TagName = "流行101";
|
||||||
repo.SaveMany(ss[0], "Tags"); //指定保存 Tags 多对多属性
|
|
||||||
|
|
||||||
ss[0].Name = "爱你一万年.mp5";
|
ss[0].Name = "爱你一万年.mp5";
|
||||||
ss[0].Tags.Clear();
|
ss[0].Tags.Clear();
|
||||||
|
@ -82,13 +82,13 @@ namespace FreeSql.Tests.DbContext
|
|||||||
|
|
||||||
Console.WriteLine("仓储的过滤器禁止,但不成功.");
|
Console.WriteLine("仓储的过滤器禁止,但不成功.");
|
||||||
//仓储的过滤器禁止,但不成功.
|
//仓储的过滤器禁止,但不成功.
|
||||||
using (resp.DataFilter.DisableAll())
|
//using (resp.DataFilter.DisableAll())
|
||||||
{
|
//{
|
||||||
|
|
||||||
long count2 = resp.Where(a => a.ID != null).Count();
|
// long count2 = resp.Where(a => a.ID != null).Count();
|
||||||
|
|
||||||
Assert.True(count2 == 4);
|
// Assert.True(count2 == 4);
|
||||||
}
|
//}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,6 @@ namespace FreeSql.Tests
|
|||||||
new DEPARTMENTS { deptid = 2, deptcode = "02", deptname = "" },
|
new DEPARTMENTS { deptid = 2, deptcode = "02", deptname = "" },
|
||||||
new DEPARTMENTS { deptid = 3, deptcode = "03" , deptname = ""},
|
new DEPARTMENTS { deptid = 3, deptcode = "03" , deptname = ""},
|
||||||
});
|
});
|
||||||
user.SaveMany("depts");
|
|
||||||
|
|
||||||
user.depts = new List<DEPARTMENTS>(
|
user.depts = new List<DEPARTMENTS>(
|
||||||
new[] {
|
new[] {
|
||||||
@ -43,13 +42,11 @@ namespace FreeSql.Tests
|
|||||||
new DEPARTMENTS { deptid = 2, deptcode = "02", deptname = "" },
|
new DEPARTMENTS { deptid = 2, deptcode = "02", deptname = "" },
|
||||||
new DEPARTMENTS { deptid = 4, deptcode = "04", deptname = "" },
|
new DEPARTMENTS { deptid = 4, deptcode = "04", deptname = "" },
|
||||||
});
|
});
|
||||||
user.SaveMany("depts");
|
|
||||||
|
|
||||||
user.depts = new List<DEPARTMENTS>(
|
user.depts = new List<DEPARTMENTS>(
|
||||||
new[] {
|
new[] {
|
||||||
new DEPARTMENTS { deptid = 2, deptcode = "02", deptname = "" },
|
new DEPARTMENTS { deptid = 2, deptcode = "02", deptname = "" },
|
||||||
});
|
});
|
||||||
user.SaveMany("depts");
|
|
||||||
|
|
||||||
g.sqlite.CodeFirst.SyncStructure<Song_tag>();
|
g.sqlite.CodeFirst.SyncStructure<Song_tag>();
|
||||||
g.sqlite.CodeFirst.SyncStructure<Tag>();
|
g.sqlite.CodeFirst.SyncStructure<Tag>();
|
||||||
|
@ -533,7 +533,7 @@ WHERE ROWNUM < 11";
|
|||||||
|
|
||||||
|
|
||||||
g.mysql.SetDbContextOptions(opt => opt.EnableCascadeSave = true);
|
g.mysql.SetDbContextOptions(opt => opt.EnableCascadeSave = true);
|
||||||
var trepo = g.mysql.GetGuidRepository<TaskBuild>();
|
var trepo = g.mysql.GetRepository<TaskBuild, Guid>();
|
||||||
trepo.Insert(new TaskBuild
|
trepo.Insert(new TaskBuild
|
||||||
{
|
{
|
||||||
TaskName = "tt11",
|
TaskName = "tt11",
|
||||||
|
@ -533,7 +533,7 @@ WHERE ROWNUM < 11";
|
|||||||
|
|
||||||
|
|
||||||
g.mysql.SetDbContextOptions(opt => opt.EnableCascadeSave = true);
|
g.mysql.SetDbContextOptions(opt => opt.EnableCascadeSave = true);
|
||||||
var trepo = g.mysql.GetGuidRepository<TaskBuild>();
|
var trepo = g.mysql.GetRepository<TaskBuild, Guid>();
|
||||||
trepo.Insert(new TaskBuild
|
trepo.Insert(new TaskBuild
|
||||||
{
|
{
|
||||||
TaskName = "tt11",
|
TaskName = "tt11",
|
||||||
|
@ -961,8 +961,10 @@ WHERE (((cast(a.""Id"" as character)) in (SELECT b.""Title""
|
|||||||
var listt = select.AsTable((a, b) => "(select * from tb_topic where clicks > 10)").Page(1, 10).ToList();
|
var listt = select.AsTable((a, b) => "(select * from tb_topic where clicks > 10)").Page(1, 10).ToList();
|
||||||
|
|
||||||
var tenantId = 1;
|
var tenantId = 1;
|
||||||
var reposTopic = g.sqlite.GetGuidRepository<Topic>(null, oldname => $"{oldname}_{tenantId}");
|
var reposTopic = g.sqlite.GetRepository<Topic, Guid>();
|
||||||
var reposType = g.sqlite.GetGuidRepository<TestTypeInfo>(null, oldname => $"{oldname}_{tenantId}");
|
var reposType = g.sqlite.GetRepository<TestTypeInfo, Guid>();
|
||||||
|
reposTopic.AsTable(oldname => $"{oldname}_{tenantId}");
|
||||||
|
reposType.AsTable(oldname => $"{oldname}_{tenantId}");
|
||||||
|
|
||||||
//reposTopic.Delete(Guid.Empty);
|
//reposTopic.Delete(Guid.Empty);
|
||||||
//reposTopic.Find(Guid.Empty);
|
//reposTopic.Find(Guid.Empty);
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using FreeSql.DataAnnotations;
|
using FreeSql.DataAnnotations;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@ -16,7 +16,7 @@ namespace FreeSql.Tests.Sqlite
|
|||||||
{
|
{
|
||||||
var fsql = g.sqlite;
|
var fsql = g.sqlite;
|
||||||
fsql.CodeFirst.SyncStructure<ts_iupstr_bak>();
|
fsql.CodeFirst.SyncStructure<ts_iupstr_bak>();
|
||||||
var item = new ts_iupstr { id = Guid.NewGuid(), title = string.Join(",", Enumerable.Range(0, 2000).Select(a => "我是中国人")) };
|
var item = new ts_iupstr { id = Guid.NewGuid(), title = string.Join(",", Enumerable.Range(0, 2000).Select(a => "我是中国人")) };
|
||||||
Assert.Equal(1, fsql.Insert(item).ExecuteAffrows());
|
Assert.Equal(1, fsql.Insert(item).ExecuteAffrows());
|
||||||
var find = fsql.Select<ts_iupstr>().Where(a => a.id == item.id).First();
|
var find = fsql.Select<ts_iupstr>().Where(a => a.id == item.id).First();
|
||||||
Assert.NotNull(find);
|
Assert.NotNull(find);
|
||||||
@ -39,7 +39,7 @@ namespace FreeSql.Tests.Sqlite
|
|||||||
[Fact]
|
[Fact]
|
||||||
public void Blob()
|
public void Blob()
|
||||||
{
|
{
|
||||||
var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人"));
|
var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人"));
|
||||||
var data1 = Encoding.UTF8.GetBytes(str1);
|
var data1 = Encoding.UTF8.GetBytes(str1);
|
||||||
|
|
||||||
var item1 = new TS_BLB01 { Data = data1 };
|
var item1 = new TS_BLB01 { Data = data1 };
|
||||||
@ -92,7 +92,7 @@ namespace FreeSql.Tests.Sqlite
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void 表名中有点()
|
public void 表名中有点()
|
||||||
{
|
{
|
||||||
var item = new tbdot01 { name = "insert" };
|
var item = new tbdot01 { name = "insert" };
|
||||||
g.sqlite.Insert(item).ExecuteAffrows();
|
g.sqlite.Insert(item).ExecuteAffrows();
|
||||||
@ -120,57 +120,57 @@ namespace FreeSql.Tests.Sqlite
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void 中文表_字段()
|
public void 中文表_字段()
|
||||||
{
|
{
|
||||||
var sql = g.sqlite.CodeFirst.GetComparisonDDLStatements<测试中文表>();
|
var sql = g.sqlite.CodeFirst.GetComparisonDDLStatements<测试中文表>();
|
||||||
g.sqlite.CodeFirst.SyncStructure<测试中文表>();
|
g.sqlite.CodeFirst.SyncStructure<测试中文表>();
|
||||||
|
|
||||||
var item = new 测试中文表
|
var item = new 测试中文表
|
||||||
{
|
{
|
||||||
标题 = "测试标题",
|
标题 = "测试标题",
|
||||||
创建时间 = DateTime.Now
|
创建时间 = DateTime.Now
|
||||||
};
|
};
|
||||||
Assert.Equal(1, g.sqlite.Insert<测试中文表>().AppendData(item).ExecuteAffrows());
|
Assert.Equal(1, g.sqlite.Insert<测试中文表>().AppendData(item).ExecuteAffrows());
|
||||||
Assert.NotEqual(Guid.Empty, item.编号);
|
Assert.NotEqual(Guid.Empty, item.编号);
|
||||||
var item2 = g.sqlite.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
|
var item2 = g.sqlite.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
|
||||||
Assert.NotNull(item2);
|
Assert.NotNull(item2);
|
||||||
Assert.Equal(item.编号, item2.编号);
|
Assert.Equal(item.编号, item2.编号);
|
||||||
Assert.Equal(item.标题, item2.标题);
|
Assert.Equal(item.标题, item2.标题);
|
||||||
|
|
||||||
item.标题 = "测试标题更新";
|
item.标题 = "测试标题更新";
|
||||||
Assert.Equal(1, g.sqlite.Update<测试中文表>().SetSource(item).ExecuteAffrows());
|
Assert.Equal(1, g.sqlite.Update<测试中文表>().SetSource(item).ExecuteAffrows());
|
||||||
item2 = g.sqlite.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
|
item2 = g.sqlite.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
|
||||||
Assert.NotNull(item2);
|
Assert.NotNull(item2);
|
||||||
Assert.Equal(item.编号, item2.编号);
|
Assert.Equal(item.编号, item2.编号);
|
||||||
Assert.Equal(item.标题, item2.标题);
|
Assert.Equal(item.标题, item2.标题);
|
||||||
|
|
||||||
item.标题 = "测试标题更新_repo";
|
item.标题 = "测试标题更新_repo";
|
||||||
var repo = g.sqlite.GetRepository<测试中文表>();
|
var repo = g.sqlite.GetRepository<测试中文表>();
|
||||||
Assert.Equal(1, repo.Update(item));
|
Assert.Equal(1, repo.Update(item));
|
||||||
item2 = g.sqlite.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
|
item2 = g.sqlite.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
|
||||||
Assert.NotNull(item2);
|
Assert.NotNull(item2);
|
||||||
Assert.Equal(item.编号, item2.编号);
|
Assert.Equal(item.编号, item2.编号);
|
||||||
Assert.Equal(item.标题, item2.标题);
|
Assert.Equal(item.标题, item2.标题);
|
||||||
|
|
||||||
item.标题 = "测试标题更新_repo22";
|
item.标题 = "测试标题更新_repo22";
|
||||||
Assert.Equal(1, repo.Update(item));
|
Assert.Equal(1, repo.Update(item));
|
||||||
item2 = g.sqlite.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
|
item2 = g.sqlite.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
|
||||||
Assert.NotNull(item2);
|
Assert.NotNull(item2);
|
||||||
Assert.Equal(item.编号, item2.编号);
|
Assert.Equal(item.编号, item2.编号);
|
||||||
Assert.Equal(item.标题, item2.标题);
|
Assert.Equal(item.标题, item2.标题);
|
||||||
}
|
}
|
||||||
class 测试中文表
|
class 测试中文表
|
||||||
{
|
{
|
||||||
[Column(IsPrimary = true)]
|
[Column(IsPrimary = true)]
|
||||||
public Guid 编号 { get; set; }
|
public Guid 编号 { get; set; }
|
||||||
|
|
||||||
public string 标题 { get; set; }
|
public string 标题 { get; set; }
|
||||||
|
|
||||||
[Column(ServerTime = DateTimeKind.Local, CanUpdate = false)]
|
[Column(ServerTime = DateTimeKind.Local, CanUpdate = false)]
|
||||||
public DateTime 创建时间 { get; set; }
|
public DateTime 创建时间 { get; set; }
|
||||||
|
|
||||||
[Column(ServerTime = DateTimeKind.Local)]
|
[Column(ServerTime = DateTimeKind.Local)]
|
||||||
public DateTime 更新时间 { get; set; }
|
public DateTime 更新时间 { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -217,29 +217,29 @@ namespace FreeSql.Tests.Sqlite
|
|||||||
public void AddField()
|
public void AddField()
|
||||||
{
|
{
|
||||||
|
|
||||||
//秀一波 FreeSql.Repository 扩展包,dotnet add package FreeSql.Repository
|
//秀一波 FreeSql.Repository 扩展包,dotnet add package FreeSql.Repository
|
||||||
var topicRepository = g.sqlite.GetGuidRepository<Topic>();
|
var topicRepository = g.sqlite.GetRepository<Topic, Guid>();
|
||||||
var commentRepository = g.sqlite.GetGuidRepository<Comment>();
|
var commentRepository = g.sqlite.GetRepository<Comment, Guid>();
|
||||||
|
|
||||||
//添加测试文章
|
//添加测试文章
|
||||||
var topic = topicRepository.Insert(new Topic
|
var topic = topicRepository.Insert(new Topic
|
||||||
{
|
{
|
||||||
Title = "文章标题1",
|
Title = "文章标题1",
|
||||||
Content = "文章内容1",
|
Content = "文章内容1",
|
||||||
CreateTime = DateTime.Now
|
CreateTime = DateTime.Now
|
||||||
});
|
});
|
||||||
|
|
||||||
//添加10条测试评论
|
//添加10条测试评论
|
||||||
var comments = Enumerable.Range(0, 10).Select(a => new Comment
|
var comments = Enumerable.Range(0, 10).Select(a => new Comment
|
||||||
{
|
{
|
||||||
TopicId = topic.Id,
|
TopicId = topic.Id,
|
||||||
Nickname = $"昵称{a}",
|
Nickname = $"昵称{a}",
|
||||||
Content = $"评论内容{a}",
|
Content = $"评论内容{a}",
|
||||||
CreateTime = DateTime.Now
|
CreateTime = DateTime.Now
|
||||||
}).ToArray();
|
}).ToArray();
|
||||||
var affrows = commentRepository.Insert(comments);
|
var affrows = commentRepository.Insert(comments);
|
||||||
|
|
||||||
var find = commentRepository.Select.Where(a => a.Topic.Title == "文章标题1").ToList();
|
var find = commentRepository.Select.Where(a => a.Topic.Title == "文章标题1").ToList();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -271,7 +271,7 @@ namespace FreeSql.Tests.Sqlite
|
|||||||
{
|
{
|
||||||
|
|
||||||
var sql = g.sqlite.CodeFirst.GetComparisonDDLStatements<TableAllType>();
|
var sql = g.sqlite.CodeFirst.GetComparisonDDLStatements<TableAllType>();
|
||||||
Assert.True(string.IsNullOrEmpty(sql)); //测试运行两次后
|
Assert.True(string.IsNullOrEmpty(sql)); //测试运行两次后
|
||||||
//sql = g.Sqlite.CodeFirst.GetComparisonDDLStatements<Tb_alltype>();
|
//sql = g.Sqlite.CodeFirst.GetComparisonDDLStatements<Tb_alltype>();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -292,7 +292,7 @@ namespace FreeSql.Tests.Sqlite
|
|||||||
BoolNullable = true,
|
BoolNullable = true,
|
||||||
Byte = 255,
|
Byte = 255,
|
||||||
ByteNullable = 127,
|
ByteNullable = 127,
|
||||||
Bytes = Encoding.UTF8.GetBytes("我是中国人"),
|
Bytes = Encoding.UTF8.GetBytes("我是中国人"),
|
||||||
DateTime = DateTime.Now,
|
DateTime = DateTime.Now,
|
||||||
DateTimeNullable = DateTime.Now.AddHours(-1),
|
DateTimeNullable = DateTime.Now.AddHours(-1),
|
||||||
Decimal = 99.99M,
|
Decimal = 99.99M,
|
||||||
@ -313,7 +313,7 @@ namespace FreeSql.Tests.Sqlite
|
|||||||
SByteNullable = 99,
|
SByteNullable = 99,
|
||||||
Short = short.MaxValue,
|
Short = short.MaxValue,
|
||||||
ShortNullable = short.MinValue,
|
ShortNullable = short.MinValue,
|
||||||
String = "我是中国人string'\\?!@#$%^&*()_+{}}{~?><<>",
|
String = "我是中国人string'\\?!@#$%^&*()_+{}}{~?><<>",
|
||||||
Char = 'X',
|
Char = 'X',
|
||||||
TimeSpan = TimeSpan.FromSeconds(999),
|
TimeSpan = TimeSpan.FromSeconds(999),
|
||||||
TimeSpanNullable = TimeSpan.FromSeconds(60),
|
TimeSpanNullable = TimeSpan.FromSeconds(60),
|
||||||
|
@ -40,7 +40,7 @@ namespace FreeSql.Tests.Issues
|
|||||||
new Material{Code="TEST2",Units=new List<Unit>{new Unit{Code = "KG"}}}
|
new Material{Code="TEST2",Units=new List<Unit>{new Unit{Code = "KG"}}}
|
||||||
};
|
};
|
||||||
|
|
||||||
var repo1 = freeSql.GetGuidRepository<Material>();
|
var repo1 = freeSql.GetRepository<Material, Guid>();
|
||||||
repo1.DbContextOptions.EnableCascadeSave = true;
|
repo1.DbContextOptions.EnableCascadeSave = true;
|
||||||
repo1.Insert(materials);
|
repo1.Insert(materials);
|
||||||
|
|
||||||
@ -56,7 +56,7 @@ namespace FreeSql.Tests.Issues
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var repo2 = freeSql.GetGuidRepository<Order>();
|
var repo2 = freeSql.GetRepository<Order, Guid>();
|
||||||
repo2.DbContextOptions.EnableCascadeSave = true;
|
repo2.DbContextOptions.EnableCascadeSave = true;
|
||||||
repo2.Insert(order);
|
repo2.Insert(order);
|
||||||
|
|
||||||
@ -138,7 +138,7 @@ namespace FreeSql.Tests.Issues
|
|||||||
new Material{Code="TEST2",Units=new List<Unit>{new Unit{Code = "KG"}}}
|
new Material{Code="TEST2",Units=new List<Unit>{new Unit{Code = "KG"}}}
|
||||||
};
|
};
|
||||||
|
|
||||||
var repo1 = freeSql.GetGuidRepository<Material>();
|
var repo1 = freeSql.GetRepository<Material, Guid>();
|
||||||
repo1.DbContextOptions.EnableCascadeSave = true;
|
repo1.DbContextOptions.EnableCascadeSave = true;
|
||||||
repo1.Insert(materials);
|
repo1.Insert(materials);
|
||||||
|
|
||||||
@ -154,7 +154,7 @@ namespace FreeSql.Tests.Issues
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var repo2 = freeSql.GetGuidRepository<Order>();
|
var repo2 = freeSql.GetRepository<Order, Guid>();
|
||||||
repo2.DbContextOptions.EnableCascadeSave = true;
|
repo2.DbContextOptions.EnableCascadeSave = true;
|
||||||
repo2.Insert(order);
|
repo2.Insert(order);
|
||||||
|
|
||||||
|
@ -169,8 +169,8 @@ namespace FreeSql.Tests.MsAccess
|
|||||||
{
|
{
|
||||||
|
|
||||||
//秀一波 FreeSql.Repository 扩展包,dotnet add package FreeSql.Repository
|
//秀一波 FreeSql.Repository 扩展包,dotnet add package FreeSql.Repository
|
||||||
var topicRepository = g.msaccess.GetGuidRepository<Topic>();
|
var topicRepository = g.msaccess.GetRepository<Topic, Guid>();
|
||||||
var commentRepository = g.msaccess.GetGuidRepository<Comment>();
|
var commentRepository = g.msaccess.GetRepository<Comment, Guid>();
|
||||||
|
|
||||||
//添加测试文章
|
//添加测试文章
|
||||||
var topic = topicRepository.Insert(new Topic
|
var topic = topicRepository.Insert(new Topic
|
||||||
|
@ -1154,8 +1154,10 @@ FROM ""TestTypeParentInfo_01"" a", asTableSubSql);
|
|||||||
var listt = select.AsTable((a, b) => "(select * from tb_topic where clicks > 10)").Page(1, 10).ToList();
|
var listt = select.AsTable((a, b) => "(select * from tb_topic where clicks > 10)").Page(1, 10).ToList();
|
||||||
|
|
||||||
var tenantId = 1;
|
var tenantId = 1;
|
||||||
var reposTopic = g.sqlite.GetGuidRepository<Topic>(null, oldname => $"{oldname}_{tenantId}");
|
var reposTopic = g.sqlite.GetRepository<Topic, Guid>();
|
||||||
var reposType = g.sqlite.GetGuidRepository<TestTypeInfo>(null, oldname => $"{oldname}_{tenantId}");
|
var reposType = g.sqlite.GetRepository<TestTypeInfo, Guid>();
|
||||||
|
reposTopic.AsTable(oldname => $"{oldname}_{tenantId}");
|
||||||
|
reposType.AsTable(oldname => $"{oldname}_{tenantId}");
|
||||||
|
|
||||||
//reposTopic.Delete(Guid.Empty);
|
//reposTopic.Delete(Guid.Empty);
|
||||||
//reposTopic.Find(Guid.Empty);
|
//reposTopic.Find(Guid.Empty);
|
||||||
|
@ -238,8 +238,8 @@ namespace FreeSql.Tests.Sqlite
|
|||||||
{
|
{
|
||||||
|
|
||||||
//秀一波 FreeSql.Repository 扩展包,dotnet add package FreeSql.Repository
|
//秀一波 FreeSql.Repository 扩展包,dotnet add package FreeSql.Repository
|
||||||
var topicRepository = g.sqlite.GetGuidRepository<Topic>();
|
var topicRepository = g.sqlite.GetRepository<Topic, Guid>();
|
||||||
var commentRepository = g.sqlite.GetGuidRepository<Comment>();
|
var commentRepository = g.sqlite.GetRepository<Comment, Guid>();
|
||||||
|
|
||||||
//添加测试文章
|
//添加测试文章
|
||||||
var topic = topicRepository.Insert(new Topic
|
var topic = topicRepository.Insert(new Topic
|
||||||
|
@ -82,7 +82,7 @@ namespace FreeSql.Tests
|
|||||||
public string Title { get; set; }
|
public string Title { get; set; }
|
||||||
public override Task Persistent(IRepositoryUnitOfWork uof)
|
public override Task Persistent(IRepositoryUnitOfWork uof)
|
||||||
{
|
{
|
||||||
uof.GetGuidRepository<TestEntity>().Insert(this);
|
uof.GetRepository<TestEntity, Guid>().Insert(this);
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
public override Task Persistent()
|
public override Task Persistent()
|
||||||
@ -826,7 +826,7 @@ namespace FreeSql.Tests
|
|||||||
|
|
||||||
|
|
||||||
g.sqlite.SetDbContextOptions(opt => opt.EnableCascadeSave = true);
|
g.sqlite.SetDbContextOptions(opt => opt.EnableCascadeSave = true);
|
||||||
var trepo = g.sqlite.GetGuidRepository<TaskBuild>();
|
var trepo = g.sqlite.GetRepository<TaskBuild, Guid>();
|
||||||
trepo.Insert(new TaskBuild
|
trepo.Insert(new TaskBuild
|
||||||
{
|
{
|
||||||
TaskName = "tt11",
|
TaskName = "tt11",
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
<SignAssembly>true</SignAssembly>
|
<SignAssembly>true</SignAssembly>
|
||||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -1104,6 +1104,93 @@
|
|||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:FreeSql.Extensions.DynamicEntity.DynamicCompileBuilder">
|
||||||
|
<summary>
|
||||||
|
动态创建实体类型
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSql.Extensions.DynamicEntity.DynamicCompileBuilder.#ctor(IFreeSql,System.String,System.Attribute[])">
|
||||||
|
<summary>
|
||||||
|
配置Class
|
||||||
|
</summary>
|
||||||
|
<param name="className">类名</param>
|
||||||
|
<param name="attributes">类标记的特性[Table(Name = "xxx")] [Index(xxxx)]</param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:FreeSql.Extensions.DynamicEntity.DynamicCompileBuilder.TypeBuilder">
|
||||||
|
<summary>
|
||||||
|
获取类型构建器,可作为要构建的Type来引用
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSql.Extensions.DynamicEntity.DynamicCompileBuilder.Property(System.String,System.Type,System.Attribute[])">
|
||||||
|
<summary>
|
||||||
|
配置属性
|
||||||
|
</summary>
|
||||||
|
<param name="propertyName">属性名称</param>
|
||||||
|
<param name="propertyType">属性类型</param>
|
||||||
|
<param name="attributes">属性标记的特性-支持多个</param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSql.Extensions.DynamicEntity.DynamicCompileBuilder.Property(System.String,System.Type,System.Boolean,System.Attribute[])">
|
||||||
|
<summary>
|
||||||
|
配置属性
|
||||||
|
</summary>
|
||||||
|
<param name="propertyName">属性名称</param>
|
||||||
|
<param name="propertyType">属性类型</param>
|
||||||
|
<param name="isOverride">该属性是否重写父类属性</param>
|
||||||
|
<param name="attributes">属性标记的特性-支持多个</param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSql.Extensions.DynamicEntity.DynamicCompileBuilder.Property(System.String,System.Type,System.Boolean,System.Object,System.Attribute[])">
|
||||||
|
<summary>
|
||||||
|
配置属性
|
||||||
|
</summary>
|
||||||
|
<param name="propertyName">属性名称</param>
|
||||||
|
<param name="propertyType">属性类型</param>
|
||||||
|
<param name="isOverride">该属性是否重写父类属性</param>
|
||||||
|
<param name="defaultValue">属性默认值</param>
|
||||||
|
<param name="attributes">属性标记的特性-支持多个</param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSql.Extensions.DynamicEntity.DynamicCompileBuilder.Extend(System.Type)">
|
||||||
|
<summary>
|
||||||
|
配置父类
|
||||||
|
</summary>
|
||||||
|
<param name="superClass">父类类型</param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSql.Extensions.DynamicEntity.DynamicCompileBuilder.OverrideProperty(System.Reflection.Emit.TypeBuilder@,System.Reflection.Emit.MethodBuilder,FreeSql.Extensions.DynamicEntity.DynamicCompileBuilder.PropertyMethodEnum,System.String)">
|
||||||
|
<summary>
|
||||||
|
Override属性
|
||||||
|
</summary>
|
||||||
|
<param name="typeBuilder"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSql.Extensions.DynamicEntity.DynamicCompileBuilder.Build">
|
||||||
|
<summary>
|
||||||
|
Emit动态创建出Class - Type
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSql.Extensions.DynamicEntity.DynamicCompileBuilder.BuildJustType">
|
||||||
|
<summary>
|
||||||
|
Emit动态创建出Class - Type,不附带获取TableInfo
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSql.Extensions.DynamicEntity.DynamicCompileBuilder.FirstCharToLower(System.String)">
|
||||||
|
<summary>
|
||||||
|
首字母小写
|
||||||
|
</summary>
|
||||||
|
<param name="input"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSql.Extensions.DynamicEntity.DynamicCompileBuilder.FirstCharToUpper(System.String)">
|
||||||
|
<summary>
|
||||||
|
首字母大写
|
||||||
|
</summary>
|
||||||
|
<param name="input"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:FreeSql.Extensions.EntityUtil.EntityUtilExtensions.GetEntityKeyString(IFreeSql,System.Type,System.Object,System.Boolean,System.String)">
|
<member name="M:FreeSql.Extensions.EntityUtil.EntityUtilExtensions.GetEntityKeyString(IFreeSql,System.Type,System.Object,System.Boolean,System.String)">
|
||||||
<summary>
|
<summary>
|
||||||
获取实体的主键值,以 "*|_,[,_|*" 分割,当任意一个主键属性无值时,返回 ""
|
获取实体的主键值,以 "*|_,[,_|*" 分割,当任意一个主键属性无值时,返回 ""
|
||||||
@ -5826,6 +5913,28 @@
|
|||||||
请使用 fsql.InsertDict(dict) 方法插入字典数据
|
请使用 fsql.InsertDict(dict) 方法插入字典数据
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:FreeSqlGlobalDynamicEntityExtensions.DynamicEntity(FreeSql.ICodeFirst,System.String,System.Attribute[])">
|
||||||
|
<summary>
|
||||||
|
动态构建Class Type
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSqlGlobalDynamicEntityExtensions.CreateInstance(FreeSql.Internal.Model.TableInfo,System.Collections.Generic.Dictionary{System.String,System.Object})">
|
||||||
|
<summary>
|
||||||
|
根据字典,创建 table 对应的实体对象
|
||||||
|
</summary>
|
||||||
|
<param name="table"></param>
|
||||||
|
<param name="dict"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSqlGlobalDynamicEntityExtensions.CreateDictionary(FreeSql.Internal.Model.TableInfo,System.Object)">
|
||||||
|
<summary>
|
||||||
|
根据实体对象,创建 table 对应的字典
|
||||||
|
</summary>
|
||||||
|
<param name="table"></param>
|
||||||
|
<param name="instance"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:FreeSqlGlobalExpressionCallExtensions.Between(System.DateTime,System.DateTime,System.DateTime)">
|
<member name="M:FreeSqlGlobalExpressionCallExtensions.Between(System.DateTime,System.DateTime,System.DateTime)">
|
||||||
<summary>
|
<summary>
|
||||||
C#: that >= between && that <= and<para></para>
|
C#: that >= between && that <= and<para></para>
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
<SignAssembly>False</SignAssembly>
|
<SignAssembly>False</SignAssembly>
|
||||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<SignAssembly>true</SignAssembly>
|
<SignAssembly>true</SignAssembly>
|
||||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
<Title>$(AssemblyName)</Title>
|
<Title>$(AssemblyName)</Title>
|
||||||
<IsPackable>true</IsPackable>
|
<IsPackable>true</IsPackable>
|
||||||
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
|
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<SignAssembly>true</SignAssembly>
|
<SignAssembly>true</SignAssembly>
|
||||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<SignAssembly>true</SignAssembly>
|
<SignAssembly>true</SignAssembly>
|
||||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
<Title>$(AssemblyName)</Title>
|
<Title>$(AssemblyName)</Title>
|
||||||
<IsPackable>true</IsPackable>
|
<IsPackable>true</IsPackable>
|
||||||
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
|
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<SignAssembly>true</SignAssembly>
|
<SignAssembly>true</SignAssembly>
|
||||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<SignAssembly>true</SignAssembly>
|
<SignAssembly>true</SignAssembly>
|
||||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<SignAssembly>true</SignAssembly>
|
<SignAssembly>true</SignAssembly>
|
||||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<SignAssembly>true</SignAssembly>
|
<SignAssembly>true</SignAssembly>
|
||||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<SignAssembly>true</SignAssembly>
|
<SignAssembly>true</SignAssembly>
|
||||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<SignAssembly>true</SignAssembly>
|
<SignAssembly>true</SignAssembly>
|
||||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<SignAssembly>true</SignAssembly>
|
<SignAssembly>true</SignAssembly>
|
||||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<SignAssembly>true</SignAssembly>
|
<SignAssembly>true</SignAssembly>
|
||||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
<Title>$(AssemblyName)</Title>
|
<Title>$(AssemblyName)</Title>
|
||||||
<IsPackable>true</IsPackable>
|
<IsPackable>true</IsPackable>
|
||||||
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
|
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<SignAssembly>true</SignAssembly>
|
<SignAssembly>true</SignAssembly>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<SignAssembly>true</SignAssembly>
|
<SignAssembly>true</SignAssembly>
|
||||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<SignAssembly>true</SignAssembly>
|
<SignAssembly>true</SignAssembly>
|
||||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<SignAssembly>true</SignAssembly>
|
<SignAssembly>true</SignAssembly>
|
||||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
<Title>$(AssemblyName)</Title>
|
<Title>$(AssemblyName)</Title>
|
||||||
<IsPackable>true</IsPackable>
|
<IsPackable>true</IsPackable>
|
||||||
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
|
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
|
||||||
<Version>3.2.833</Version>
|
<Version>3.5.100-preview20240725</Version>
|
||||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user