v3.5.100-preview20240725 #1830 #1861 #1208

This commit is contained in:
2881099 2024-07-25 01:32:05 +08:00
parent 86669a2d7f
commit d8965d5749
49 changed files with 223 additions and 174 deletions

View File

@ -11,7 +11,7 @@
<!-- <!--
经常出于版本交叉问题,暂时关闭,在每个项目上设置版本号 经常出于版本交叉问题,暂时关闭,在每个项目上设置版本号
<PropertyGroup> <PropertyGroup>
<Version>3.2.833</Version> <Version>3.5.100-preview20240725</Version>
</PropertyGroup> </PropertyGroup>
--> -->

View File

@ -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");

View File

@ -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)

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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

View File

@ -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);
} }
} }

View File

@ -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>

View File

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

View File

@ -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);
} //}
} }
} }

View File

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

View File

@ -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",

View File

@ -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",

View File

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

View File

@ -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),

View File

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

View File

@ -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

View File

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

View File

@ -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

View File

@ -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",

View File

@ -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>

View File

@ -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 &amp;&amp; that &lt;= and<para></para> C# that >= between &amp;&amp; that &lt;= and<para></para>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>