2022-0302

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


EFCore解决方案:

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

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

protected 阅读全文>>
                
标签: EFCore Unicode SetIsUnicode 阅读:721
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 阅读:670