- 移除 Repository.DataFilter 功能通知;#1208

This commit is contained in:
2881099 2024-07-25 01:18:24 +08:00
parent 04a538ab42
commit 86669a2d7f
11 changed files with 77 additions and 247 deletions

View File

@ -10,7 +10,7 @@ using System.Threading.Tasks;
namespace restful.Controllers
{
public class SongRepository : GuidRepository<Song>
public class SongRepository : BaseRepository<Song>
{
public SongRepository(IFreeSql fsql) : base(fsql)
{
@ -43,18 +43,6 @@ namespace restful.Controllers
Console.Write(reposTest.Select.ToSql());
_songRepository = repos4;
//test code
var curd1 = fsql.GetRepository<Song, int>();
var curd2 = fsql.GetRepository<Song, string>();
var curd3 = fsql.GetRepository<Song, Guid>();
var curd4 = fsql.GetGuidRepository<Song>();
Console.WriteLine(reposSong.Select.ToSql());
using (reposSong.DataFilter.DisableAll())
{
Console.WriteLine(reposSong.Select.ToSql());
}
}
[HttpGet]

View File

@ -162,18 +162,5 @@ namespace FreeSql
Repository.UnitOfWork = _resolveUow?.Invoke();
return Repository.InsertOrUpdate(this as TEntity);
}
/// <summary>
/// To completely save the navigation properties of the entity in the form of sub-tables. <br />
/// 【完整】保存导航属性,子表
/// </summary>
/// <param name="navigatePropertyName">Navigation property name</param>
public virtual void SaveMany(string navigatePropertyName)
{
if (Repository == null)
Repository = Orm.GetRepository<TEntity>();
Repository.UnitOfWork = _resolveUow?.Invoke();
Repository.SaveMany(this as TEntity, navigatePropertyName);
}
}
}

View File

@ -149,19 +149,6 @@ namespace FreeSql
Repository.UnitOfWork = _resolveUow?.Invoke();
return Repository.InsertOrUpdateAsync(this as TEntity);
}
/// <summary>
/// To completely save the navigation properties of the entity in the form of sub-tables. <br />
/// 【完整】保存导航属性,子表
/// </summary>
/// <param name="navigatePropertyName">Navigation property name</param>
public virtual Task SaveManyAsync(string navigatePropertyName)
{
if (Repository == null)
Repository = Orm.GetRepository<TEntity>();
Repository.UnitOfWork = _resolveUow?.Invoke();
return Repository.SaveManyAsync(this as TEntity, navigatePropertyName);
}
#endif
}
}

View File

@ -82,13 +82,6 @@
</summary>
<returns></returns>
</member>
<member name="M:FreeSql.BaseEntity`1.SaveMany(System.String)">
<summary>
To completely save the navigation properties of the entity in the form of sub-tables. <br />
【完整】保存导航属性,子表
</summary>
<param name="navigatePropertyName">Navigation property name</param>
</member>
<member name="T:FreeSql.BaseEntityAsync`2">
<summary>
Entity base class, including CreateTime/UpdateTime/IsDeleted, the async CRUD methods, and ID primary key definition.
@ -159,13 +152,6 @@
</summary>
<returns></returns>
</member>
<member name="M:FreeSql.BaseEntityAsync`1.SaveManyAsync(System.String)">
<summary>
To completely save the navigation properties of the entity in the form of sub-tables. <br />
【完整】保存导航属性,子表
</summary>
<param name="navigatePropertyName">Navigation property name</param>
</member>
<member name="T:FreeSql.BaseEntity">
<summary>
Entity base class, including CreateTime/UpdateTime/IsDeleted.

View File

@ -21,9 +21,10 @@ namespace FreeSql
{
}
public IBaseRepository<TEntity> GetRepository<TEntity>() where TEntity : class
public IBaseRepository<TEntity> GetRepository<TEntity>() where TEntity : class => GetRepository<TEntity, int>();
public IBaseRepository<TEntity, TKey> GetRepository<TEntity, TKey>() where TEntity : class
{
var repo = new DefaultRepository<TEntity, int>(_fsql);
var repo = new DefaultRepository<TEntity, TKey>(_fsql);
repo.UnitOfWork = this;
return repo;
}

View File

@ -11,9 +11,10 @@ partial class FreeSqlDbContextExtensions
/// <typeparam name="TEntity"></typeparam>
/// <param name="that"></param>
/// <returns></returns>
public static IBaseRepository<TEntity> GetRepository<TEntity>(this IFreeSql that) where TEntity : class
public static IBaseRepository<TEntity> GetRepository<TEntity>(this IFreeSql that) where TEntity : class => GetRepository<TEntity, int>(that);
public static IBaseRepository<TEntity, TKey> GetRepository<TEntity, TKey>(this IFreeSql that) where TEntity : class
{
return new DefaultRepository<TEntity, int>(that);
return new DefaultRepository<TEntity, TKey>(that);
}
/// <summary>

View File

@ -614,7 +614,7 @@ namespace FreeSql.Tests
{
g.sqlite.Insert(new AddUpdateInfo()).ExecuteAffrows();
var repos = g.sqlite.GetGuidRepository<object>();
var repos = g.sqlite.GetRepository<object, Guid>();
repos.AsType(typeof(AddUpdateInfo));
var item = new AddUpdateInfo();
@ -627,7 +627,6 @@ namespace FreeSql.Tests
var item2 = repos.Find(item.Id) as AddUpdateInfo;
Assert.Equal(item.Clicks, item2.Clicks);
repos.DataFilter.Apply("xxx", a => (a as AddUpdateInfo).Clicks == 2);
Assert.Null(repos.Find(item.Id));
}

View File

@ -65,23 +65,23 @@ WHERE (exists(SELECT 1
limit 0,1))
ORDER BY a.""Id"" DESC", sql);
using (userRepository.DataFilter.Disable("TenantQuery"))
{
sql = userRepository.Select
.Where(i => i.DoorDevices.AsSelect().Any(x => x.Id == deviceId))
.OrderByDescending(true, a => a.Id)
.ToSql();
Assert.Equal(@"SELECT a.""Id"", a.""TenantId""
FROM ""issues1208_User"" a
WHERE (exists(SELECT 1
FROM ""issues1208_DoorDeviceUser"" Mx_Mi
WHERE (Mx_Mi.""UserId"" = a.""Id"") AND (exists(SELECT 1
FROM ""issues1208_DoorDevice"" x
WHERE (x.""Id"" = 100) AND (x.""Id"" = Mx_Mi.""DoorDeviceId"")
limit 0,1))
limit 0,1))
ORDER BY a.""Id"" DESC", sql);
}
// using (userRepository.DataFilter.Disable("TenantQuery"))
// {
// sql = userRepository.Select
// .Where(i => i.DoorDevices.AsSelect().Any(x => x.Id == deviceId))
// .OrderByDescending(true, a => a.Id)
// .ToSql();
// Assert.Equal(@"SELECT a.""Id"", a.""TenantId""
//FROM ""issues1208_User"" a
//WHERE (exists(SELECT 1
// FROM ""issues1208_DoorDeviceUser"" Mx_Mi
// WHERE (Mx_Mi.""UserId"" = a.""Id"") AND (exists(SELECT 1
// FROM ""issues1208_DoorDevice"" x
// WHERE (x.""Id"" = 100) AND (x.""Id"" = Mx_Mi.""DoorDeviceId"")
// limit 0,1))
// limit 0,1))
//ORDER BY a.""Id"" DESC", sql);
// }
sql = userRepository.Select
.Where(i => i.DoorDevices.Any(x => x.Id == deviceId))
@ -113,23 +113,23 @@ WHERE (exists(SELECT 1
limit 0,1))
ORDER BY a.""Id"" DESC", sql);
using (userRepository.DataFilter.Disable("TenantQuery"))
{
sql = userRepository.Select
.Where(i => i.DoorDevices.Any(x => x.Id == deviceId))
.OrderByDescending(true, a => a.Id)
.ToSql();
Assert.Equal(@"SELECT a.""Id"", a.""TenantId""
FROM ""issues1208_User"" a
WHERE (exists(SELECT 1
FROM ""issues1208_DoorDevice"" x
WHERE (exists(SELECT 1
FROM ""issues1208_DoorDeviceUser"" Mx_Ma
WHERE (Mx_Ma.""DoorDeviceId"" = x.""Id"") AND (Mx_Ma.""UserId"" = a.""Id"")
limit 0,1)) AND (x.""Id"" = 100)
limit 0,1))
ORDER BY a.""Id"" DESC", sql);
}
// using (userRepository.DataFilter.Disable("TenantQuery"))
// {
// sql = userRepository.Select
// .Where(i => i.DoorDevices.Any(x => x.Id == deviceId))
// .OrderByDescending(true, a => a.Id)
// .ToSql();
// Assert.Equal(@"SELECT a.""Id"", a.""TenantId""
//FROM ""issues1208_User"" a
//WHERE (exists(SELECT 1
// FROM ""issues1208_DoorDevice"" x
// WHERE (exists(SELECT 1
// FROM ""issues1208_DoorDeviceUser"" Mx_Ma
// WHERE (Mx_Ma.""DoorDeviceId"" = x.""Id"") AND (Mx_Ma.""UserId"" = a.""Id"")
// limit 0,1)) AND (x.""Id"" = 100)
// limit 0,1))
//ORDER BY a.""Id"" DESC", sql);
// }
}
}
@ -231,23 +231,23 @@ WHERE (exists(SELECT 1
limit 0,1)) AND (a.""SoftDeleted"" = 0)
ORDER BY a.""Id"" DESC", sql);
using (userRepository.DataFilter.Disable("TenantQuery"))
{
sql = userRepository.Select
.Where(i => i.DoorDevices.AsSelect().Any(x => x.Id == deviceId))
.OrderByDescending(true, a => a.Id)
.ToSql();
Assert.Equal(@"SELECT a.""Id"", a.""TenantId"", a.""SoftDeleted""
FROM ""issues1208_User02"" a
WHERE (exists(SELECT 1
FROM ""issues1208_DoorDeviceUser02"" Mx_Mi
WHERE (Mx_Mi.""UserId"" = a.""Id"") AND (exists(SELECT 1
FROM ""issues1208_DoorDevice02"" x
WHERE (x.""Id"" = 100) AND (x.""Id"" = Mx_Mi.""DoorDeviceId"") AND (x.""SoftDeleted"" = 0)
limit 0,1)) AND (Mx_Mi.""SoftDeleted"" = 0)
limit 0,1)) AND (a.""SoftDeleted"" = 0)
ORDER BY a.""Id"" DESC", sql);
}
// using (userRepository.DataFilter.Disable("TenantQuery"))
// {
// sql = userRepository.Select
// .Where(i => i.DoorDevices.AsSelect().Any(x => x.Id == deviceId))
// .OrderByDescending(true, a => a.Id)
// .ToSql();
// Assert.Equal(@"SELECT a.""Id"", a.""TenantId"", a.""SoftDeleted""
//FROM ""issues1208_User02"" a
//WHERE (exists(SELECT 1
// FROM ""issues1208_DoorDeviceUser02"" Mx_Mi
// WHERE (Mx_Mi.""UserId"" = a.""Id"") AND (exists(SELECT 1
// FROM ""issues1208_DoorDevice02"" x
// WHERE (x.""Id"" = 100) AND (x.""Id"" = Mx_Mi.""DoorDeviceId"") AND (x.""SoftDeleted"" = 0)
// limit 0,1)) AND (Mx_Mi.""SoftDeleted"" = 0)
// limit 0,1)) AND (a.""SoftDeleted"" = 0)
//ORDER BY a.""Id"" DESC", sql);
// }
sql = userRepository.Select
.Where(i => i.DoorDevices.Any(x => x.Id == deviceId))
@ -279,23 +279,23 @@ WHERE (exists(SELECT 1
limit 0,1)) AND (a.""SoftDeleted"" = 0)
ORDER BY a.""Id"" DESC", sql);
using (userRepository.DataFilter.Disable("TenantQuery"))
{
sql = userRepository.Select
.Where(i => i.DoorDevices.Any(x => x.Id == deviceId))
.OrderByDescending(true, a => a.Id)
.ToSql();
Assert.Equal(@"SELECT a.""Id"", a.""TenantId"", a.""SoftDeleted""
FROM ""issues1208_User02"" a
WHERE (exists(SELECT 1
FROM ""issues1208_DoorDevice02"" x
WHERE (exists(SELECT 1
FROM ""issues1208_DoorDeviceUser02"" Mx_Ma
WHERE (Mx_Ma.""DoorDeviceId"" = x.""Id"") AND (Mx_Ma.""UserId"" = a.""Id"") AND (Mx_Ma.""SoftDeleted"" = 0)
limit 0,1)) AND (x.""Id"" = 100) AND (x.""SoftDeleted"" = 0)
limit 0,1)) AND (a.""SoftDeleted"" = 0)
ORDER BY a.""Id"" DESC", sql);
}
// using (userRepository.DataFilter.Disable("TenantQuery"))
// {
// sql = userRepository.Select
// .Where(i => i.DoorDevices.Any(x => x.Id == deviceId))
// .OrderByDescending(true, a => a.Id)
// .ToSql();
// Assert.Equal(@"SELECT a.""Id"", a.""TenantId"", a.""SoftDeleted""
//FROM ""issues1208_User02"" a
//WHERE (exists(SELECT 1
// FROM ""issues1208_DoorDevice02"" x
// WHERE (exists(SELECT 1
// FROM ""issues1208_DoorDeviceUser02"" Mx_Ma
// WHERE (Mx_Ma.""DoorDeviceId"" = x.""Id"") AND (Mx_Ma.""UserId"" = a.""Id"") AND (Mx_Ma.""SoftDeleted"" = 0)
// limit 0,1)) AND (x.""Id"" = 100) AND (x.""SoftDeleted"" = 0)
// limit 0,1)) AND (a.""SoftDeleted"" = 0)
//ORDER BY a.""Id"" DESC", sql);
// }
}
}

View File

@ -382,16 +382,6 @@ namespace FreeSql.Tests
var gft2 = g.mysql.Select<gf_t2>().Where(a => a.id == Guid.NewGuid()).ToList();
var gft3 = g.mysql.Select<gf_t3>().Where(a => a.id == Guid.NewGuid()).ToList();
var repo1 = g.mysql.GetRepository<gf_t1, Guid>();
using (repo1.DataFilter.Disable("gft1", "gft2", "gft3"))
repo1.Get(Guid.NewGuid());
var repo2 = g.mysql.GetRepository<gf_t2, Guid>();
using (repo2.DataFilter.Disable("gft1", "gft2", "gft3"))
repo2.Get(Guid.NewGuid());
var repo3 = g.mysql.GetRepository<gf_t3, Guid>();
using (repo3.DataFilter.Disable("gft1", "gft2", "gft3"))
repo3.Get(Guid.NewGuid());
g.sqlserver.Delete<TBatInst>().Where("1=1").ExecuteAffrows();
g.mysql.Delete<TBatInst>().Where("1=1").ExecuteAffrows();
g.pgsql.Delete<TBatInst>().Where("1=1").ExecuteAffrows();

View File

@ -1104,93 +1104,6 @@
</summary>
<returns></returns>
</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)">
<summary>
获取实体的主键值,以 "*|_,[,_|*" 分割,当任意一个主键属性无值时,返回 ""
@ -5913,28 +5826,6 @@
请使用 fsql.InsertDict(dict) 方法插入字典数据
</summary>
</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)">
<summary>
C# that >= between &amp;&amp; that &lt;= and<para></para>