当前位置:首页 > 网站源码 > 正文内容

安卓手机exe模拟器知乎(安卓运行exe游戏模拟器)

网站源码1年前 (2023-09-13)295

↓推荐关注↓

一、创建表

SqlSugar支持了3种模式的建表(无实体建表、实体建表,实体特性建表),非常的灵活

可以多个数据库 MYSQL MSSQL ORACLE SQLITE PGSQL 等用同一语法创建数据库,不需要考虑数据库的兼容性

中间标准:

string 大文本

5.1.3.44-preview06 推荐[SugarColumn(ColumnDataType = StaticConfig.CodeFirst_BigString)]

string 设置长度的字符串

[SugarColumn(Length=10)] public string FieldName{ get; set; }

int 整数

public int FieldName{ get; set; }

short 整数小

public short FieldName{ get; set; }

long 大数字

public long FieldName{ get; set; }

bool 真假

public bool FieldName{ get; set; }

decimal 默认

public decimal FieldName{ get; set; }

decimal 自定义

//18,2 18,4 18,6 这几种兼容性好[SugarColumn(Length=18,DecimalDigits=2)]public decimal FieldName{ get; set; }

DateTime 时间

public DateTime FieldName{ get; set; }

枚举 (数据库存int)

public 枚举 FieldName{ get; set; }

byte[] 二进制

public byte[] FileInfo{get;set;}建议:升级到 SqlSugarCore 5.1.3.46-preview09 及以上对多库支持了比较好

SqlServer特殊配置:和他库不同一般选用Nvarchar,可以使用这个配置让他和其他数据库区分(其他库是varchar)

DbType = SqlSugar.DbType.SqlServer,`` ``ConnectionString ="字符串",`` ``IsAutoCloseConnection = ``true``,`` ``MoreSettings=``newConnMoreSettings {`` `` ``SqlServerCodeFirstNvarchar= ``true``,`` `` ``}

1.1、通过特性建表

我们可以通过创建实体来进行建表

publicclassCodeFirstTable1

{

[ SugarColumn(IsIdentity = true, IsPrimaryKey = true)]

publicintId { get; set; }

展开全文

publicstringName { get; set; }

//ColumnDataType 自定格式的情况 length不要设置 (想要多库兼容看4.2和9)

[ SugarColumn(ColumnDataType = "Nvarchar(255)") ]

publicstringText { get; set; }

[ SugarColumn(IsNullable = true)] //可以为NULL

publicDateTime CreateTime { get; set; }

}

/***创建单个表***/

db.CodeFirst.SetStringDefaultLength( 200).InitTables( typeof(CodeFirstTable1)); //这样一个表就能成功创建了

/***手动建多个表***/

db.CodeFirst.SetStringDefaultLength( 200)

.InitTables( typeof(CodeFirstTable1), typeof(CodeFirstTable2));

建表特性如下

名称

描述

IsIdentity

是否创建自增标识

IsPrimaryKey

是否创建主键标识

ColumnName

创建数据库字段的名称(默认取实体类属性名称)

ColumnDataType

创建数据库字段的类型用法1:“varchar(20)” 不需要设置长度用法2: 不设置该参数 系统会根据C#类型自动生成相应的数据库类型 用法3: 多库兼容可以用 :看标题9

IsIgnore

ORM不处理该列

ColumnDeion

备注 表注释 (新版本支持XML文件)

Length

长度 设成10会生成 xxx类型(10), 没括号的不设置

IsNullable

是否可以为null默为false

DecimalDigits

精度 如 decimal(18,2) length=18,DecimalDigits=2

OracleSequenceName

设置Oracle序列,设置后该列等同于自增列

OldColumnName

修改列名用,这样不会新增或者删除列

IndexGroupNameList

已弃用 ,新用法看文档4.3

UniqueGroupNameList

已弃用, 新用法看文档4.3

注意:有2个属性用处不同DefaultValue IsOnlyIgnoreInsert

DefaultValue=默认值 用来建表设置字段默认值IsOnlyIgnoreInsert=true 插入数据时取默认值很多情况需要2个一起使用如果只建表不插入数据用1个 如果建表并且插入数据用2个

2.2、无特性建表

如果我们的实体不需要加特性,那么我们可以通过特性方式建表

SugarClient db = newSqlSugarClient( newConnectionConfig

{

DbType = DbType.SqlServer,

ConnectionString = Config.ConnectionString3,

InitKeyType = InitKeyType.Attribute,

IsAutoCloseConnection = true,

ConfigureExternalServices = newConfigureExternalServices

{

EntityService = (s, p) =>

{

//如果是Order实体进行相关配置

p.IfTable<Order>

.UpdateProperty(it => it.id, it =>

{

it.IsIdentity = true;

it.IsPrimarykey = true;

})

.UpdateProperty(it => it.Name, it => {

it.Length = 100;

it.IsNullable = true;

})

.OneToOne(it => it.Item, nameof(Order.ItemId));

//如果Custom实体进行相关配置

p.IfTable<Custom>

.UpdateProperty(it => it.id, it =>

{

it.IsIdentity = true;

it.IsPrimarykey = true;

})

.UpdateProperty(it => it.Text, it => {

it.DataType= StaticConfig.CodeFirst_BigString; //支持多库的MaxString用法

安卓手机exe模拟器知乎(安卓运行exe游戏模拟器)

})

//可以结合全局逻辑一起使用,下面的和上面的有冲突的话,下面会覆盖上面的

//统一设置 nullable等于isnullable=true

//低版本C#看标题2.2

if(p.IsPrimaryKey== false&& newNullabilityInfoContext

.Create(c).WriteState isNullabilityState.Nullable)

{

p.IsNullable = true;

}

}

}

});

//性能说明:

//EntityService 相同实体只会执行一次性不需太操作

1.3、无实体建表

功能与实体建类一模一样,如果使用SqlSugar中间标准可以支持多个数据库一套代码建表

vartype = db.DynamicBuilder.CreateClass( "UnitEntityA",

newSugarTable

{

TableDeion = "表备注",

//DisabledUpdateAll=true 可以禁止更新只创建

}

)

.CreateProperty( "Id", typeof( int), newSugarColumn { IsPrimaryKey = true, IsIdentity = true, ColumnDeion = "列备注"})

.CreateProperty( "Name", typeof( string), newSugarColumn {Length= 200, ColumnDeion = "列备注"})

.BuilderType;

db.CodeFirst.InitTables(type);

三、数据库维护

SqlSugar有一套数据库维护API,并且能够很好的支持多种数据库,例如备份数据库等常用功能

//例1 获取所有表

vartables = db.DbMaintenance.GetTableInfoList( false); //true 走缓存 false不走缓存

foreach( vartable intables)

{

Console.WriteLine(table.Deion); //输出表信息

//获取列信息

//var columns=db.DbMaintenance.GetColumnInfosByTableName("表名",false);

}

//例2

db.DbMaintenance.IsAnyTable( "tablename", false) //验证表名是否缓存不走缓存

所以API

GetDataBaseList

获取所有数据库名称

List

GetViewInfoList

查询所有视图

List

GetTableInfoList

获取所有表,查询所有的表 (GetTableInfoList(是否缓存))

List

GetColumnInfosByTableName

获取列根据表名,获取字段,字段信息GetColumnInfosByTableName(表名,是否缓存)

List

GetIsIdentities

获取自增列

List

GetPrimaries

获取主键

List

IsAnyTable

表是否存在,判断表存不存在 ( IsAny(表名,是否缓存))

bool

IsAnyColumn

列是否存在

bool

IsPrimaryKey

主键是否存在

bool

IsIdentity

自增是否存在

bool

IsAnyConstraint

约束是否存在

bool

DropTable

删除表

bool

TruncateTable

清空表

bool

CreateTable

看标题 1.1,1.2,1.3

bool

AddColumn

添加列

bool

UpdateColumn

更新列

bool

AddPrimaryKey

添加主键

bool

DropConstraint

删除约束

bool

BackupDataBase

备份库

bool

DropColumn

删除列

bool

RenameColumn

重命名列

bool

AddDefaultValue

添加默认值

bool

AddTableRemark

添加表描述,表注释

bool

AddColumnRemark

添加列描述,表注释

bool

DeleteColumnRemark

删除列描述,表注释

bool

RenameTable

重命名表

bool

CreateIndex

创建索引,唯一约束(唯一索引)

bool

IsAnyIndex

索引是否存在

bool

GetIndexList

获取所有索引

GetProcList

获取所有存储过程

四、跨库支持

实体

[ TenantAttribute( "1") ] //对应ConfigId

publicclassC1Table

{

publicstringId { get; set; }

}

[ TenantAttribute( "2") ]

publicclassC2Table

{

publicstringId { get; set; }

}

查询//通过ConfigId进行数据库区分

vardb = newSqlSugarClient( newList<ConnectionConfig>

{

//这儿声名所有上下文都生效

newConnectionConfig{ConfigId= "0",DbType=DbType.SqlServer,ConnectionString=..,IsAutoCloseConnection= true},

newConnectionConfig{ConfigId= "1",DbType=DbType.MySql,ConnectionString=..,IsAutoCloseConnection= true}

});

//自动跨库联表查询

varquery5 = db.QueryableWithAttr<Order> //如果MySql和SqlServer自动支持同服务器的跨库联表查询

.LeftJoin<Custom> ((o, cus ) => o.CustomId == cus.Id) //多个条件用&&

.LeftJoin<OrderDetail> ((o, cus, oritem) => o.Id == oritem.OrderId)

.Where(o => o.Id == 1)

.Select((o, cus , oritem) => newViewOrder { Id = o.Id, CustomName = cus.Name })

.ToList;

//手动跨库联表查询 ,这种方式结合dblink可以跨服务器

varquery5 = db.Queryable.As( "xxx.表名")

.LeftJoin<Custom> ((o, cus ) => o.CustomId == cus.Id , "yyyy.表名")

.LeftJoin<OrderDetail> ((o, cus, oritem) => o.Id == oritem.OrderId , "zzzz.名表")

.Where(o => o.Id == 1)

.Select((o, cus , oritem) => newViewOrder { Id = o.Id, CustomName = cus.Name })

.ToList;

插入db.InsertableWithAttr(list).Execommand

更新db.UpdateableWithAttr(list).Execommand

删除db.UpdateableWithAttr(list).Execommand

只要实体配置了数据库,就不要考虑换库了,直接使用,并且支持事务

四、过滤器

SqlSugar支持了全新的过滤器,可以是接口,集成该接口的类都生效,支持多表查询

db.QueryFilter

.AddTableFilter<IDeletedFilter>(it => it.IsDeleted== false) //IDeletedFilter是自定义接口,继承这个接口的实体有效

.AddTableFilterIF<ITenantFilter>(isAdmint== false,it=>it.OrgId==用户OrgId); //ITenantFilter自定义接口

//用例1:单条语句清空,只影响当前语句

db.Queryable<Order>.ClearFilter.ToList; //所有过滤器都无效

db.Queryable<Order>.ClearFilter<IDeletedFilter>.ToList; //只有IDeletedFilter过滤器无效

db.Queryable<Order>.ClearFilter<IDeletedFilter,ITenantFilter>.ToList; //IDeletedFilter+ITenantFilter无效

//用例2:当前上下文清空 ,不会影响其他请求,只是当前请求清空

db.QueryFilter.Clear;

db.QueryFilter.Clear<IDeletedFilter>;

//用例3:清空并还原 ,不会影响其他请求,只是当前请求清空

db.QueryFilter.ClearAndBackup; //有多个重载 ClearAndBackup<T,T2>;

db.Queryable<Order>.ToList;

db.QueryFilter.Restore; //还原过滤器 (适合下面代码还需要过滤器情况)

五、子查询升级

1、ToList 可以直接查询一个对象

2、First 可以直接查单个对象

3、ToList(it=>it.Id) 可以查List< int >一个字段集合

4、SelectStringJoin(z => z.Name, ",") 子查询将一列用逗号拼接成字符串

varlist=db.Queryable< Order >

.Select(it => new

{

CustomId = it.CustomId,

OrderId = it.Id,

OrderName = it.Name,

CustomList = SqlFunc.Subqueryable< Custom >.Where(c => c.Id == it.CustomId).ToList

})

.ToList;

六、自定义类型支持自定义类型转换器

下面只是讲解怎么定义转换器,ORM自带的功能就包含下面功能,只是用来讲解

publicclassDictionaryConvert: ISugarDataConverter

{

publicSugarParameter ParameterConverter<T>( objectvalue, inti)

{

//该功能ORM自带的IsJson就能实现这里只是用这个用例来给大家学习

varname = "@myp"+ i;

varstr = newSerializeService.SerializeObject( value);

returnnewSugarParameter(name, str);

}

publicT QueryConverter<T>(IDataRecord dr, inti)

{

//打断点调试

//该功能ORM自带的IsJson就能实现这里只是用这个用例来给大家学习

varstr = dr.GetValue(i) + "";

returnnewSerializeService.DeserializeObject<T>(str);

}

}

//使用自定义转换器

[ SugarColumn(ColumnDataType= "varchar(2000)",SqlParameterDbType=typeof(DictionaryConvert)) ]

publicDictionary< string, object> DcValue { get; set; } //5.1.3.53-preview08

现有类型支持

json类型

https://www.donet5.com/Home/Doc?typeId=1232

枚举类型

int存储:直接用就行了

publicDbType DcValue { get; set; }

string存储:高版本如下写法

[ SugarColumn(ColumnDataType= "varchar(20)",SqlParameterDbType=typeof(EnumToStringConvert)) ]

publicDbType DcValue { get; set; }

3、数据库独有类型支持

看左边菜单 【数据库特性】 该菜单下面有 SqlServer菜单或者MySql菜单等,针对不同数据库都有专门的介绍

总结

SqlSugar在2021年到2022年大量的开源应用使用了SqlSugar,带动了SqlSugar的快速发展,我这边要感谢大家

Admin.NET通用管理平台

ZrAdminNetCore 后台

管理Yi框架(Ruoyi Vue)

SimpleAdmin (new)

vboot-netmagic.net (Vue2.0)

网关采集系统(Blazor)

RuYiAdmin

CoreShop商城

Blog.Core

YuebonCore

企业级框架Furion

WebFirst

腾讯APIJSON.NET

WaterCloud微服务

ViperFamilyBucket应用框架通用后台

SmartSqlWMS仓库管理系统a

pevolo-apiFytSoaCms

开源项目

https://www.donet5.com/Home/Doc?typeId=1215

转自:果糖大数据科技

转自:果糖大数据科技

- EOF -

点击标题可跳转

.NET 6.0+Vue3搭建书签管理项目

.NET 升级利器:Upgrade Assistant

Sql Server 高并发的情况下,如何利用锁保证数据的稳定性

看完本文有收获?请转发分享给更多人

推荐关注「DotNet」,提升.Net技能

点赞和在看就是最大的支持❤️

扫描二维码推送至手机访问。

版权声明:本文由我的模板布,如需转载请注明出处。


本文链接:http://60200875.com/post/30542.html

分享给朋友:

“安卓手机exe模拟器知乎(安卓运行exe游戏模拟器)” 的相关文章

借钱的正规平台有哪些(哪些是正规借钱平台)

借钱的正规平台有哪些(哪些是正规借钱平台)

本篇文章给大家谈谈借钱的正规平台有哪些,以及哪些是正规借钱平台对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、有哪些正规靠谱的借钱平台? 2、网上正规的借贷平台有哪些...

数码宝贝大冒险手游ios(数码宝贝大冒险手游阵容搭配)

数码宝贝大冒险手游ios(数码宝贝大冒险手游阵容搭配)

今天给各位分享数码宝贝大冒险手游ios的知识,其中也会对数码宝贝大冒险手游阵容搭配进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、什么手机能玩数码宝贝大冒险悟...

抖音直播复盘是什么意思(抖音直播如何复盘)

抖音直播复盘是什么意思(抖音直播如何复盘)

今天给各位分享抖音直播复盘是什么意思的知识,其中也会对抖音直播如何复盘进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、抖音直播历史回顾显示40场是啥意思...

抖音直播音乐电台能赚钱吗(抖音音乐电台直播怎么做)

抖音直播音乐电台能赚钱吗(抖音音乐电台直播怎么做)

本篇文章给大家谈谈抖音直播音乐电台能赚钱吗,以及抖音音乐电台直播怎么做对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、抖音电台类主播怎么赚钱 2、抖音电台主播赚钱吗...

自带提现系统的传奇打金(打金提现传奇端游)

自带提现系统的传奇打金(打金提现传奇端游)

今天给各位分享自带提现系统的传奇打金的知识,其中也会对打金提现传奇端游进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、可以兑换现金的传奇手游 2、什么传奇...

苹果6如何信任软件(苹果6如何信任软件下载)

苹果6如何信任软件(苹果6如何信任软件下载)

今天给各位分享苹果6如何信任软件的知识,其中也会对苹果6如何信任软件下载进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、苹果手机在哪添加信任? 2、想问苹...