实体框架和 SQL 字符:如何忽略尾随空格?

问题描述 投票:0回答:1

假设 SQL 表包含

char(10)
列,并且一条记录在该列中包含值“ABC”。当询问值时,实体框架将传递
ABC       
(“ABC”,带有 7 个尾随空格)。

有没有办法让实体框架在获取

char
类型的列的值时忽略尾随空格,本质上让 EF 将其视为
varchar

快速浏览一下 Fluent API 中可用的方法,没有得出明显的解决方案。删除

entity.Property(e => e.CharColumn).IsFixedLength()
不会产生修剪尾随空格的预期效果。 在我的用例中,不能选择将 SQL 数据库中的列类型从
char
更改为
varchar
,因为它可能会干扰我无法控制的读取此表的其他程序。

c# sql entity-framework t-sql
1个回答
0
投票

您可以使用自己创建的属性来修剪值,而不是使用自动属性。

private string _myProp;
public string MyProp
{
    get => _myProp?.TrimEnd();
    set => _myProp = value;
}

在设置器中进行操作时要小心。我不确定实体框架,但 EF Core 如果找到支持字段,则会直接将值分配给支持字段,从而绕过设置器。

© www.soinside.com 2019 - 2024. All rights reserved.