WTM
文档和官网
https://wtmdoc.walkingtec.cn/#/
https://github.com/dotnetcore/WTM
属性值创建和修改时不能重复
在对应的VM中,增加SetDuplicatedCheck函数,函数中增加需要进行重复性检验的属性。
// AppUserVM.cs中
public override DuplicatedInfo<AppUser> SetDuplicatedCheck()
{
// 胸卡不允许重复
var rv = CreateFieldsInfo(SimpleField(x => x.CardNum));
// 账号不允许重复
rv.AddGroup(SimpleField(x => x.ITCode));
// 序列号不允许重复,但可以为空
rv.AddGroup(SimpleField(x => x.CardSerial));
return rv;
}
创建计算属性,即此属性是由其他的属性计算获得。
// 在Model.cs文件中正常设置属性
[Display(Name = "加密码")]
public string Code { get; set; }
// 在对应的ModelVM.cs文件中增加计算属性的值,如果是编辑,
// 因为默认为只更新表单提交的值,所以,需要在FC的Dictionary中增加对应的表单。
public override void DoAdd()
{
Entity.Code = Utils.GetMD5String(Entity.ID.ToString() + Entity.Name + Entity.Account + Entity.Password);
base.DoAdd();
}
public override void DoEdit(bool updateAllFields = false)
{
Entity.Code = Utils.GetMD5String(Entity.ID.ToString() + Entity.Name + Entity.Account + Entity.Password);
FC.Add("Entity.Code", Entity.Code);
base.DoEdit(updateAllFields);
}
// 如果单纯的显示,不在数据库中保存,可使用以下方式
private string code;
public string Code {
get => code;
set => code = Utils.GetMD5String(ID.ToString() + Name + Account + Password);
}
使用Kestrel服务器
在WTM中不需要特殊配置,Publish的时候,File Publish Options选择Produce single file用以生成单独的exe文件,
Deployment Mode选择Self-Contained,Target Runtime选择win-x64
设置开机启动
在开始中运行:shell:common startup,进入:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
将新建的快捷方式拖入此文件夹中
设置不同的启动端口
在exe后面增加参数 --urls "http://*:8080"
使用SQLite数据库
安装SQLite
https://www.sqlite.org/download.html
下载sqlite-dll-win32-x86和sqlite-tools-win32-x86,将两者解压到D:\SQLite,
然后将D:\SQLite加入环境变量
安装SQLite管理器-DB Browser for SQLite
https://sqlitebrowser.org/dl/
下载安装。
在appsettings.json文件的ConnectionStrings下的Value,设置为SQLite
的路径及.DB文件名,同时更改DBType为Sqlite:
"ConnectionStrings": [
{
"Key": "default",
"Value": "Filename=D:\\UnityWTM.DB"
}
],
"DBType": "Sqlite",