对应普通对象,写个扩展方法,ToJson蛮方便。

但是 dynamic 类型就不行了,因为是运行时解析,只能转换为强类型 IDictionary<string, object> 才可以。

配置文件(Firebird):

 <configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup> <connectionStrings>
<add name="fb" connectionString="Server=localhost;User=SYSDBA;Password=1234;Database=wms;Dialect=3;ServerType=0;"/>
</connectionStrings> <system.data>
<DbProviderFactories>
<remove invariant="FirebirdSql.Data.FirebirdClient" />
<add name="FirebirdClient Data Provider" invariant="FirebirdSql.Data.FirebirdClient"
description=".NET Framework Data Provider for Firebird"
type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient" />
</DbProviderFactories>
</system.data>
</configuration>

转换工具:

     static class JsonHelper
{
public static string ToJson(this object obj)
{
var str = JsonConvert.SerializeObject(obj, Formatting.Indented, new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore,
DateFormatString = "yyyy-MM-dd HH:mm:ss",
ReferenceLoopHandling = ReferenceLoopHandling.Ignore//循环引用
});
return str;
} public static T FromJson<T>(this string json) where T : class
{
return JsonConvert.DeserializeObject(json, typeof(T), new IsoDateTimeConverter
{
DateTimeFormat = "yyyy-MM-dd HH:mm:ss"
}) as T;
}
}

Demo:

             var connectionString = ConfigurationManager.ConnectionStrings["fb"].ConnectionString;
using (var db = new DbContext().ConnectionString(
connectionString,
new DB2Provider(),
FirebirdSql.Data.FirebirdClient.FirebirdClientFactory.Instance))
{
List<dynamic> users = db.Sql(@"SELECT
M_USER.ID,
M_USER.CODE,
M_USER.PWD,
M_USER.LABEL,
M_USER.CRE_TIME
FROM
M_USER
where id > @0").Parameters().QueryMany<dynamic>(); foreach (var user in users)
{
var tem = user as IDictionary<string, object>;
Console.WriteLine(tem.ToJson());
}
} Console.ReadLine();

效果:

最新文章

  1. Linux下压缩音频文件
  2. Codeforces Round #365 (Div. 2)
  3. 改写jquery.validate.unobtrusive.js实现气泡提示mvc错误
  4. 【Android端 APP 启动时长获取】启动时长获取方案及具体实施
  5. FAQ_1_陌生的VERSION.SDK_INT
  6. 2016 Al-Baath University Training Camp Contest-1 E
  7. iOS使用keychain存储密码
  8. WinDbg调试DMP格式文件
  9. IOS 真机调试以及发布应用 1
  10. Java学习之自定义异常
  11. Java笔记Spring(七)
  12. MySQL最大连接数设置
  13. 初识Xml。
  14. Spring框架第二天
  15. spoj gcdex
  16. 【Java】经典示例代码
  17. C Language Deep Analyse
  18. maven的使用记录
  19. 【PowerDesigner】【9】禁止Name与Code同步
  20. 【ApplicationListener】Springboot各类事件监听器

热门文章

  1. docker-compose 配置
  2. MySQL数据库(四)
  3. c++ inline使函数实现可以在头文件中,避免多重定义错误
  4. css3动画(animation)效果2-旋转的星球
  5. 实体bean里面不要轻易加transient,反序列回来之后会变成null
  6. codis__简介
  7. MIT 黑科技:通过脑电波和手势控制机器人
  8. 极光开发者沙龙 JIGUANG MEETUP —— 移动应用性能优化实践
  9. python3之循环
  10. [转载]Flip an image in UIImageView using UIView transitionWithView