字典参数LongValue字段,改为大文本字段,无限长度,便于下游存储更大内容
This commit is contained in:
parent
aecc97f73a
commit
96b43e6a62
|
@ -0,0 +1,3 @@
|
|||
pushd ..\XCodeTool
|
||||
dotnet publish -f net8.0 -r win-x64 -c Release --self-contained true /p:PublishSingleFile=true /p:EnableCompressionInSingleFile=true
|
||||
popd
|
|
@ -82,6 +82,7 @@
|
|||
<Index Columns="Mobile" />
|
||||
<Index Columns="Code" />
|
||||
<Index Columns="RoleID" />
|
||||
<Index Columns="DepartmentID" />
|
||||
<Index Columns="UpdateTime" />
|
||||
</Indexes>
|
||||
</Table>
|
||||
|
@ -115,11 +116,11 @@
|
|||
<Column Name="Remark" DataType="String" Length="500" Description="备注" Category="扩展" />
|
||||
</Columns>
|
||||
<Indexes>
|
||||
<Index Columns="TenantId,ParentID,Name" Unique="True" />
|
||||
<Index Columns="Name" />
|
||||
<Index Columns="ParentID,Name" />
|
||||
<Index Columns="Code" />
|
||||
<Index Columns="UpdateTime" />
|
||||
<Index Columns="TenantId" />
|
||||
</Indexes>
|
||||
</Table>
|
||||
<Table Name="Role" Description="角色。业务场景中的岗位,功能权限的集合。不管是用户还是租户,都以角色来管理权限">
|
||||
|
@ -181,8 +182,8 @@
|
|||
<Column Name="Remark" DataType="String" Length="500" Description="备注" Category="扩展" />
|
||||
</Columns>
|
||||
<Indexes>
|
||||
<Index Columns="Name" />
|
||||
<Index Columns="ParentID,Name" Unique="True" />
|
||||
<Index Columns="Name" />
|
||||
</Indexes>
|
||||
</Table>
|
||||
<Table Name="Parameter" Description="字典参数。管理用户或系统全局的名值对数据,常用于参数配置场合" UsingCache="False">
|
||||
|
@ -192,7 +193,7 @@
|
|||
<Column Name="Category" DataType="String" Description="类别" />
|
||||
<Column Name="Name" DataType="String" Master="True" Nullable="False" Description="名称" />
|
||||
<Column Name="Value" DataType="String" Length="200" Description="数值" />
|
||||
<Column Name="LongValue" DataType="String" Length="2000" Description="长数值" />
|
||||
<Column Name="LongValue" DataType="String" Length="-1" Description="长数值" />
|
||||
<Column Name="Kind" DataType="Int32" Description="种类。0普通,21列表,22名值" Type="XCode.Membership.ParameterKinds" />
|
||||
<Column Name="Enable" DataType="Boolean" Description="启用" />
|
||||
<Column Name="Ex1" DataType="Int32" Description="扩展1" Category="扩展" />
|
||||
|
|
|
@ -1364,7 +1364,7 @@
|
|||
<td>LongValue</td>
|
||||
<td>长数值</td>
|
||||
<td>String</td>
|
||||
<td>2000</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
|
|
Binary file not shown.
|
@ -68,7 +68,7 @@ public partial class Parameter : IParameter, IEntity<ParameterModel>
|
|||
/// <summary>长数值</summary>
|
||||
[DisplayName("长数值")]
|
||||
[Description("长数值")]
|
||||
[DataObjectField(false, false, true, 2000)]
|
||||
[DataObjectField(false, false, true, -1)]
|
||||
[BindColumn("LongValue", "长数值", "")]
|
||||
public String? LongValue { get => _LongValue; set { if (OnPropertyChanging("LongValue", value)) { _LongValue = value; OnPropertyChanged("LongValue"); } } }
|
||||
|
||||
|
@ -333,6 +333,17 @@ public partial class Parameter : IParameter, IEntity<ParameterModel>
|
|||
#endregion
|
||||
|
||||
#region 扩展查询
|
||||
/// <summary>根据用户、类别查找</summary>
|
||||
/// <param name="userId">用户</param>
|
||||
/// <param name="category">类别</param>
|
||||
/// <returns>实体列表</returns>
|
||||
public static IList<Parameter> FindAllByUserIDAndCategory(Int32 userId, String category)
|
||||
{
|
||||
if (userId < 0) return [];
|
||||
if (category == null) return [];
|
||||
|
||||
return FindAll(_.UserID == userId & _.Category == category);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 字段名
|
||||
|
|
|
@ -22,6 +22,7 @@ namespace XCode.Membership;
|
|||
[BindIndex("IX_User_Mobile", false, "Mobile")]
|
||||
[BindIndex("IX_User_Code", false, "Code")]
|
||||
[BindIndex("IX_User_RoleID", false, "RoleID")]
|
||||
[BindIndex("IX_User_DepartmentID", false, "DepartmentID")]
|
||||
[BindIndex("IX_User_UpdateTime", false, "UpdateTime")]
|
||||
[BindTable("User", Description = "用户。用户帐号信息,以身份验证为中心,拥有多种角色,可加入多个租户", ConnName = "Membership", DbType = DatabaseType.None)]
|
||||
public partial class User : IUser, IEntity<UserModel>
|
||||
|
@ -479,6 +480,18 @@ public partial class User : IUser, IEntity<UserModel>
|
|||
#endregion
|
||||
|
||||
#region 扩展查询
|
||||
/// <summary>根据部门查找</summary>
|
||||
/// <param name="departmentId">部门</param>
|
||||
/// <returns>实体列表</returns>
|
||||
public static IList<User> FindAllByDepartmentID(Int32 departmentId)
|
||||
{
|
||||
if (departmentId < 0) return [];
|
||||
|
||||
// 实体缓存
|
||||
if (Meta.Session.Count < 1000) return Meta.Cache.FindAll(e => e.DepartmentID == departmentId);
|
||||
|
||||
return FindAll(_.DepartmentID == departmentId);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 字段名
|
||||
|
|
|
@ -17,8 +17,8 @@ namespace XCode.Membership;
|
|||
[Serializable]
|
||||
[DataObject]
|
||||
[Description("菜单。功能权限,大多数时候也是可见页面")]
|
||||
[BindIndex("IX_Menu_Name", false, "Name")]
|
||||
[BindIndex("IU_Menu_ParentID_Name", true, "ParentID,Name")]
|
||||
[BindIndex("IX_Menu_Name", false, "Name")]
|
||||
[BindTable("Menu", Description = "菜单。功能权限,大多数时候也是可见页面", ConnName = "Membership", DbType = DatabaseType.None)]
|
||||
public partial class Menu : IMenu, IEntity<MenuModel>
|
||||
{
|
||||
|
|
|
@ -17,11 +17,11 @@ namespace XCode.Membership;
|
|||
[Serializable]
|
||||
[DataObject]
|
||||
[Description("部门。组织机构,多级树状结构,支持多租户")]
|
||||
[BindIndex("IU_Department_TenantId_ParentID_Name", true, "TenantId,ParentID,Name")]
|
||||
[BindIndex("IX_Department_Name", false, "Name")]
|
||||
[BindIndex("IX_Department_ParentID_Name", false, "ParentID,Name")]
|
||||
[BindIndex("IX_Department_Code", false, "Code")]
|
||||
[BindIndex("IX_Department_UpdateTime", false, "UpdateTime")]
|
||||
[BindIndex("IX_Department_TenantId", false, "TenantId")]
|
||||
[BindTable("Department", Description = "部门。组织机构,多级树状结构,支持多租户", ConnName = "Membership", DbType = DatabaseType.None)]
|
||||
public partial class Department : IDepartment, IEntity<DepartmentModel>
|
||||
{
|
||||
|
@ -376,6 +376,37 @@ public partial class Department : IDepartment, IEntity<DepartmentModel>
|
|||
#endregion
|
||||
|
||||
#region 扩展查询
|
||||
/// <summary>根据租户、父级、名称查找</summary>
|
||||
/// <param name="tenantId">租户</param>
|
||||
/// <param name="parentId">父级</param>
|
||||
/// <param name="name">名称</param>
|
||||
/// <returns>实体对象</returns>
|
||||
public static Department? FindByTenantIdAndParentIDAndName(Int32 tenantId, Int32 parentId, String name)
|
||||
{
|
||||
if (tenantId < 0) return null;
|
||||
if (parentId < 0) return null;
|
||||
if (name == null) return null;
|
||||
|
||||
// 实体缓存
|
||||
if (Meta.Session.Count < 1000) return Meta.Cache.Find(e => e.TenantId == tenantId && e.ParentID == parentId && e.Name.EqualIgnoreCase(name));
|
||||
|
||||
return Find(_.TenantId == tenantId & _.ParentID == parentId & _.Name == name);
|
||||
}
|
||||
|
||||
/// <summary>根据租户、父级查找</summary>
|
||||
/// <param name="tenantId">租户</param>
|
||||
/// <param name="parentId">父级</param>
|
||||
/// <returns>实体列表</returns>
|
||||
public static IList<Department> FindAllByTenantIdAndParentID(Int32 tenantId, Int32 parentId)
|
||||
{
|
||||
if (tenantId < 0) return [];
|
||||
if (parentId < 0) return [];
|
||||
|
||||
// 实体缓存
|
||||
if (Meta.Session.Count < 1000) return Meta.Cache.FindAll(e => e.TenantId == tenantId && e.ParentID == parentId);
|
||||
|
||||
return FindAll(_.TenantId == tenantId & _.ParentID == parentId);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 字段名
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<EntityModel xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:schemaLocation="https://newlifex.com https://newlifex.com/Model202309.xsd" Document="https://newlifex.com/xcode/model" xmlns="https://newlifex.com/Model202309.xsd">
|
||||
<EntityModel xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:schemaLocation="https://newlifex.com https://newlifex.com/Model202407.xsd" Document="https://newlifex.com/xcode/model" xmlns="https://newlifex.com/Model202407.xsd">
|
||||
<Option>
|
||||
<!--类名模板。其中{name}替换为Table.Name,如{name}Model/I{name}Dto等-->
|
||||
<ClassNameTemplate />
|
||||
|
@ -82,6 +82,7 @@
|
|||
<Index Columns="Mobile" />
|
||||
<Index Columns="Code" />
|
||||
<Index Columns="RoleID" />
|
||||
<Index Columns="DepartmentID" />
|
||||
<Index Columns="UpdateTime" />
|
||||
</Indexes>
|
||||
</Table>
|
||||
|
@ -115,11 +116,11 @@
|
|||
<Column Name="Remark" DataType="String" Length="500" Description="备注" Category="扩展" />
|
||||
</Columns>
|
||||
<Indexes>
|
||||
<Index Columns="TenantId,ParentID,Name" Unique="True" />
|
||||
<Index Columns="Name" />
|
||||
<Index Columns="ParentID,Name" />
|
||||
<Index Columns="Code" />
|
||||
<Index Columns="UpdateTime" />
|
||||
<Index Columns="TenantId" />
|
||||
</Indexes>
|
||||
</Table>
|
||||
<Table Name="Role" Description="角色。业务场景中的岗位,功能权限的集合。不管是用户还是租户,都以角色来管理权限">
|
||||
|
@ -181,18 +182,18 @@
|
|||
<Column Name="Remark" DataType="String" Length="500" Description="备注" Category="扩展" />
|
||||
</Columns>
|
||||
<Indexes>
|
||||
<Index Columns="Name" />
|
||||
<Index Columns="ParentID,Name" Unique="True" />
|
||||
<Index Columns="Name" />
|
||||
</Indexes>
|
||||
</Table>
|
||||
<Table Name="Parameter" Description="字典参数。管理用户或系统全局的名值对数据,常用于参数配置场合">
|
||||
<Table Name="Parameter" Description="字典参数。管理用户或系统全局的名值对数据,常用于参数配置场合" UsingCache="False">
|
||||
<Columns>
|
||||
<Column Name="ID" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
|
||||
<Column Name="UserID" DataType="Int32" Map="User@Id@$" Description="用户。按用户区分参数,用户0表示系统级" />
|
||||
<Column Name="Category" DataType="String" Description="类别" />
|
||||
<Column Name="Name" DataType="String" Master="True" Description="名称" />
|
||||
<Column Name="Name" DataType="String" Master="True" Nullable="False" Description="名称" />
|
||||
<Column Name="Value" DataType="String" Length="200" Description="数值" />
|
||||
<Column Name="LongValue" DataType="String" Length="2000" Description="长数值" />
|
||||
<Column Name="LongValue" DataType="String" Length="-1" Description="长数值" />
|
||||
<Column Name="Kind" DataType="Int32" Description="种类。0普通,21列表,22名值" Type="XCode.Membership.ParameterKinds" />
|
||||
<Column Name="Enable" DataType="Boolean" Description="启用" />
|
||||
<Column Name="Ex1" DataType="Int32" Description="扩展1" Category="扩展" />
|
||||
|
@ -220,7 +221,7 @@
|
|||
<Table Name="Area" Description="地区。行政区划数据,最高支持四级地址,9位数字">
|
||||
<Columns>
|
||||
<Column Name="ID" DataType="Int32" PrimaryKey="True" Description="编码。行政区划编码" />
|
||||
<Column Name="Name" DataType="String" Master="True" Description="名称" />
|
||||
<Column Name="Name" DataType="String" Master="True" Nullable="False" Description="名称" />
|
||||
<Column Name="FullName" DataType="String" Master="True" Description="全名" />
|
||||
<Column Name="ParentID" DataType="Int32" Description="父级" />
|
||||
<Column Name="Level" DataType="Int32" Description="层级" />
|
||||
|
@ -249,9 +250,9 @@
|
|||
</Table>
|
||||
<Table Name="Log" Description="日志。应用系统审计日志,记录用户的各种操作,禁止修改和删除" ConnName="Log" InsertOnly="True">
|
||||
<Columns>
|
||||
<Column Name="ID" DataType="Int64" PrimaryKey="True" Description="编号" />
|
||||
<Column Name="ID" DataType="Int64" PrimaryKey="True" DataScale="time" Description="编号" />
|
||||
<Column Name="Category" DataType="String" Description="类别" />
|
||||
<Column Name="Action" DataType="String" Description="操作" />
|
||||
<Column Name="Action" DataType="String" Nullable="False" Description="操作" />
|
||||
<Column Name="LinkID" DataType="Int64" Description="链接" />
|
||||
<Column Name="Success" DataType="Boolean" Description="成功" />
|
||||
<Column Name="UserName" DataType="String" Description="用户名" />
|
||||
|
@ -278,7 +279,7 @@
|
|||
<Columns>
|
||||
<Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
|
||||
<Column Name="Code" DataType="String" Description="编码。唯一编码" />
|
||||
<Column Name="Name" DataType="String" Master="True" Description="名称。显示名称" />
|
||||
<Column Name="Name" DataType="String" Master="True" Nullable="False" Description="名称。显示名称" />
|
||||
<Column Name="Enable" DataType="Boolean" Description="启用" />
|
||||
<Column Name="ManagerId" DataType="Int32" Map="User@Id@$" Description="管理者" />
|
||||
<Column Name="RoleIds" DataType="String" Length="200" Description="角色组。租户可选的角色集合,不同级别的租户所拥有的角色不一样,高级功能也会不同" />
|
||||
|
|
|
@ -98,9 +98,6 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Remove="Build.tt" />
|
||||
<None Remove="install.ps1" />
|
||||
<None Remove="Readme.MD" />
|
||||
<None Remove="UpdateInfo.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="..\Doc\leaf.png" Link="leaf.png" PackagePath="\" />
|
||||
|
@ -111,8 +108,4 @@
|
|||
<PackagePath>\</PackagePath>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Readme.MD" />
|
||||
<EmbeddedResource Include="UpdateInfo.txt" />
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -17,6 +17,6 @@ public class EntityTests
|
|||
};
|
||||
//user.Insert();
|
||||
var ex = Assert.Throws<ArgumentOutOfRangeException>(() => user.Insert());
|
||||
Assert.EndsWith("[Name=StoneXXX]", ex.Message);
|
||||
Assert.Contains("[Name=StoneXXX]", ex.Message);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@ public class UserTests
|
|||
var user = new User { Name = Rand.NextString(64) };
|
||||
var ex = Assert.Throws<ArgumentOutOfRangeException>(() => user.Insert());
|
||||
Assert.Equal("Name", ex.ParamName);
|
||||
Assert.Equal("名称长度限制50字符 (Parameter 'Name')", ex.Message);
|
||||
Assert.Equal("[Name/名称]长度限制50字符[ID=0] (Parameter 'Name')", ex.Message);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Runtime.Serialization;
|
||||
|
@ -233,10 +233,10 @@ public partial class CorePerson
|
|||
/// <param name="pname">姓名</param>
|
||||
/// <param name="creditNo">身份证号</param>
|
||||
/// <returns>实体对象</returns>
|
||||
public static CorePerson FindByPnameAndCreditNo(String pname, String creditNo)
|
||||
public static CorePerson? FindByPnameAndCreditNo(String pname, String creditNo)
|
||||
{
|
||||
if (pname.IsNullOrEmpty()) return null;
|
||||
if (creditNo.IsNullOrEmpty()) return null;
|
||||
if (pname == null) return null;
|
||||
if (creditNo == null) return null;
|
||||
|
||||
// 实体缓存
|
||||
if (Meta.Session.Count < 1000) return Meta.Cache.Find(e => e.Pname.EqualIgnoreCase(pname) && e.CreditNo.EqualIgnoreCase(creditNo));
|
||||
|
@ -244,6 +244,19 @@ public partial class CorePerson
|
|||
return Find(_.Pname == pname & _.CreditNo == creditNo);
|
||||
}
|
||||
|
||||
/// <summary>根据姓名查找</summary>
|
||||
/// <param name="pname">姓名</param>
|
||||
/// <returns>实体列表</returns>
|
||||
public static IList<CorePerson> FindAllByPname(String pname)
|
||||
{
|
||||
if (pname == null) return [];
|
||||
|
||||
// 实体缓存
|
||||
if (Meta.Session.Count < 1000) return Meta.Cache.FindAll(e => e.Pname.EqualIgnoreCase(pname));
|
||||
|
||||
return FindAll(_.Pname == pname);
|
||||
}
|
||||
|
||||
/// <summary>根据楼宇ID查找</summary>
|
||||
/// <param name="buildId">楼宇ID</param>
|
||||
/// <returns>实体列表</returns>
|
||||
|
|
Loading…
Reference in New Issue