您正在使用IPV4(35.168.110.128)访问本站 您本次共访问本站 1 次
 用户名: 密 码: 验证码:     用QQ登录本站
首页 软件 编程 笑话 知识 公告 台风 日历 计算器
[公益]文明驾车我带头,文明行路我带头,礼貌让座我带头      

【腾讯云】多款云产品1折起,买云服务器送免费机器,最长免费续3个月      
[公益] 节省一分零钱 献出一份爱心 温暖世间真情      
2022年 中秋节 21
2022年 国庆节 42
2023年 元 旦 134
2023年 春 节 155
 
本类新增
本类热门文章
您现在的位置:首页 >> ASP/ASP.net >> 内容
Asp.net core利用dynamic简化数据库访问
内容摘要: 一个数据库的帮助类,代码如下。publicstaticclassDbEx{publicstaticdynamicReadToObject(thisIDataReaderreader){varobj=newDbObject();for(inti=0;ireader.FieldCount;i++){obj[reader.GetName(i)]=newDbFiel......
一个数据库的帮助类,代码如下。

publicstaticclassDbEx

{

publicstaticdynamicReadToObject(thisIDataReaderreader)

{

varobj=newDbObject();

for(inti=0;i<reader.FieldCount;i++)

{

obj[reader.GetName(i)]=newDbField()

{

DbData=reader[i]

};

}

returnobj;

}

publicclassDbObject:DynamicObject

{

//自己实现一个,不用ExpandoObject,以支持无视大小写读取

publicoverrideboolTryGetMember(GetMemberBinderbinder,outobjectresult)

{

result=this[binder.Name];

returntrue;

}

Dictionary<string,object>_values=newDictionary<string,object>(StringComparer.CurrentCultureIgnoreCase);

publicobjectthis[stringindex]

{

get=>_values[index];

set=>_values[index]=value;

}

}

publicclassDbField

{

publicobjectDbData{get;set;}

publicTValue<T>()

{

return(T)Convert.ChangeType(DbData,typeof(T));

}

publicstaticimplicitoperatorstring(DbFielddata)=>data.Value<string>();

publicstaticimplicitoperatorint(DbFielddata)=>data.Value<int>();

publicstaticimplicitoperatorDateTime(DbFielddata)=>data.Value<DateTime>();

publicstaticimplicitoperatordouble(DbFielddata)=>data.Value<double>();

publicstaticimplicitoperatorbool(DbFielddata)=>data.Value<bool>();

}

}

简单的来讲,可以把如下代码

GpsDataparse(IDataReaderreader)

{

returnnewGpsData()

{

IsValid=(bool)reader["IsValid"],

Location=newLocation()

{

Lon=(double)reader["Lon"],

Lat=(double)reader["Lat"],

},

Angle=(double)reader["Angle"],

Speed=(double)reader["Speed"]),

UpdateTime=(double)reader["Speed"]),

};

}

转换为如下形式

GpsDataparse(IDataReaderreader)

{

varobj=reader.ReadToObject();

varstate=newGpsData()

{

IsValid=obj.IsValid,

Location=newLocation()

{

Lon=obj.Lon,

Lat=obj.Lat,

},

Angle=obj.Angle,

Speed=obj.Speed,

UpdateTime=obj.UpdateTime,

};

returnstate;

}

上一篇:判断是否是数字 下一篇:ASP.NET页面在IE缓存的清除办法
发布日期:2022/7/1
手机扫二维码直达本页
发布时间:13:46:51
点击:111
录入:壹家怡园
相关文章
Baidu

YiJiaCMS 6.3.1.220701(MSSQL) 闽ICP备05000814号-1
本空间由腾讯云(轻量应用服务器)提供,百度云加速提供加速防护
Copyright©2000-2022