您正在使用 IPV4 [13.59.61.119] 访问本站,您本次已经查看了 1 页
用户名: 密 码: 验证码:     用QQ登录本站
首页 软件 编程 笑话 知识 公告 台风 日历 计算器
悟空收录网       [公益]保护绿色环境,构建和谐社会      

【腾讯云】2核2G4M云服务器新老同享99元/年,续费同价      
[公益] 地球是我家,绿化靠大家      
2024年 劳动节 000
2024年 端午节 040
2025年 元 旦 245
2025年 春 节 273
 
您现在的位置:首页 >> 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
点  击:2
录  入:壹家怡园
相关文章
Baidu
YiJiaCMS 7.3.8 build231228(MSSQL) 闽ICP备05000814号-1
本空间由腾讯云(轻量应用服务器)提供,奇安信网站卫士提供加速防护
运行时间载入中.....