如何定义一个特定的函数来保存和检索数据库中的varchar字段
本文关键字:保存 字段 检索 函数 数据库 varchar 定义 何定义 一个 | 更新日期: 2023-09-27 18:17:54
我们有一个由于兼容性问题而无法更改的旧DB。因此,大多数varchar字段包含通过字符集读取的非unicode字符,确切地说是cp1251。
我们正在使用EF4.1在旧的DB上开发新的应用程序。使用ascii cp1251格式的数据并且必须以utf-8格式显示它是问题所在。不幸的是,我是EF的新手。所以我到处都有麻烦。
我正在寻找一种方法来实现2个函数,将字符串从cp1251转换为utf-8右在数据检索和输入从/到DB。
让我这样说,有一些方法可以捕获EF尝试保存varchar字段,将其当前数据转换为cp1251格式,反之亦然,当检索时不管当前使用的字段,表或db,它将更多的连接特定的实现。
我们没有数据访问层也没有业务逻辑,我们只是直接从UI到EF4.1,而任何需要实现的业务逻辑我们只是把它们放在DbContext类中。
我只是不知道在网上找什么,或者从哪里开始。
欢迎任何指示。
确保所有使用cp1251的字段都标记为非unicode并尝试使用它。恕我直言,这应该行得通。没有扩展点可以为某些数据类型添加自定义转换函数。
要在EDMX中使属性非unicode,只需在属性的属性页中设置它。要使它在代码映射中非unicode,使用:
modelBuilder.Entity<YourEntityType>()
.Property(p => p.YourStringProperty)
.IsUnicode(false);