zoukankan      html  css  js  c++  java
  • 对Gentle.Net的小改动


    1.发现Gentle.NET还是比较不错的,另一个Retina好像也比较好。
    2.Gentle.NET(1.2.5)多数据库还不是很好有BUG,还好有源码,自己改改了:
    1)它在OracleAnalyzer.cs中,会去数据库那里分析原有表中的每个字段、字段类型、字段长度。但分析CLOB时,将其长度定为了4000,这就不好了,长的数据会被它截断。所以,改了一下:

    fm.SetDbType( sr.GetString( i, "Type" ), false );

    fm.SetIsNullable( GetBoolean( sr.GetString( i, "IsNullable" ) ) );

    if( sr.GetString( i,"Type") == "CLOB")
    {
        fm.SetSize(0);
    }
    else if( sr[ i, "Size" ] != null )
    {
        fm.SetSize( sr.GetInt( i, "Size" ) );
    }

    2) 我们在项目中需要把string转为NVarchar(Oracle中对应的是Varchar2?),而原来好像是Varchar所以又要改改:
    OracleFactory.cs中:
    public override long GetDbType( Type type)
    {
        ...
       switch(...)
        {
           ...
           else if( type.Equals( typeof(string) ) )
              result = OracleType.NvarChar;
           else if ...
           ...
        }
    }

    3)然后SQL Server 中与2)相似的地方也改为NVarChar,在文件SQLServerFactory.cs中:
    public override long GetDbType( Type type)
    {
        ...
       switch(...)
        {
           ...
           else if( type.Equals( typeof(string) ) )
              result = SqlDbType.NvarChar;
           else if ...
           ...
        }
    }

    3.最后,把XML中的Analyer设为Full,这样Gentle就会自动从数据库中解析表,并保存表中的各种信息。
  • 相关阅读:
    firefox禁止更新提示
    laravel性能优化笔记片段
    laravel 7 在线教育项目实操笔记(2)后台基础功能开发
    一、笔记片段 迁移文件相关(创建表 字段 添加假数据等)
    路由、控制器笔记
    laravel rbac笔记片段
    二 笔记片段
    三 文件上传片段
    分享5个有趣的 JavaScript 代码片段
    异步上传文件
  • 原文地址:https://www.cnblogs.com/huqingyu/p/231142.html
Copyright © 2011-2022 走看看