2022-0302

如果你Oracle数据库的字段类型varchar2,你C#的model类使用string则默认会命不中索引,造成执行性能慢问题


EFCore解决方案:

因为EF访问Oracle默认支持Unicode数据类型,默认将string映射为nvarchar2,如果数据库类型不是nvarchar2则无法命中索引。

重写context的OnModelCreating,将默认string映射修改为varchar2,即不支持Unicode类型即可

protected 阅读全文>>
                
标签: EFCore Unicode SetIsUnicode 阅读:1351
2022-0302

Nhibernate默认把 .net 的 string 映射为 DbType.String,把 DbType.String 映射为 nvarchar2 ,把 DbType.AnsiString 映射为 varchar2


如果你Oracle数据库的字段类型varchar2,你用默认设置SetParameter(string,string)则因映射数据类型不一致,造成无法命中索引,SQL执行慢;使用SetAnsiString(string,string)则可以命中索引。

标签: Nhibernate nvarchar2 varchar2 SetAnsiString SetParameter 阅读:1223
2021-0915

EF中默认的decimal数据精度为两位数,当我们数据库设置的精度大于2时,EF将只会保留到2为精度。


可使用如下方法将其修改为4位精度:


EF

protectedoverridevoidOnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Properties<decimal>().Configure(config => config.HasPrecision(18, 4));
}


EF CO 阅读全文>>

标签: EF decimal 精度 阅读:1756
2020-0904

新建vbs脚本文件删除注册表信息达到永久试用,脚本内容:


Set oShell = CreateObject("WScript.Shell")
Set oFS = CreateObject("Scripting.FileSystemObject")
sHomeFolder = oShell.ExpandEnvironmentStrings("%USERPROFILE%")
sJBDataFolder = oShell.ExpandEnvironmentStrings("%APPDATA%") + "\JetBrains"
Set re = New RegExp
re.Global     = True
 阅读全文>>
                
标签: DataGrip永久试用 阅读:5488
2020-0219

默认是中文界面,软件内部部分又是英文,看起来很乱,统一设置成英文,方法如下:


打开配置文件:\sqldeveloper\bin\sqldeveloper.conf


在末尾添加如下配置信息


# 设置界面为英文
AddVMOption -Duser.language=en
AddVMOption -Duser.country=US
# 设置界面字体为微软雅黑
AddVMOption -Dswing.plaf.metal.controlFont=Micro 阅读全文>>
                
标签: Oracle SQL Developer 阅读:5489
2019-0910

1、正则表达式写法:

CREATE OR REPLACE FUNCTION fn_checkidcard (p_idcard IN VARCHAR2) RETURN INT
IS
   v_regstr      VARCHAR2 (2000);
   v_sum         NUMBER;
   v_mod         NUMBER;
   v_checkcode   CHAR (11)       := '10X98765432';
   v_checkbit    CHAR (1);
   v_areacode    VARCHAR2 (2000) := '11,12,13,14,15,21,22,23,31,32,33,34,35,36,37,41,42, 阅读全文>>
                
标签: Oracle 身份证校验 阅读:5510