Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 如何从char类型列中修剪尾随空格_Postgresql_Entity Framework_Asp.net Core_Entity Framework Core_Npgsql - Fatal编程技术网

Postgresql 如何从char类型列中修剪尾随空格

Postgresql 如何从char类型列中修剪尾随空格,postgresql,entity-framework,asp.net-core,entity-framework-core,npgsql,Postgresql,Entity Framework,Asp.net Core,Entity Framework Core,Npgsql,NET MVC Core 5应用程序使用Npgsql实体框架核心数据提供程序使用实体框架核心从Postgres数据库获取数据 数据库中的列定义为CHAR(n)type,如: create table prpalk ( sfirmanimi char(100) ); 无法将列类型更改为varchar 使用EF命令,如: string nimi = ctx.Prpalks.Single().Sfirmanimi; 要获取数据,应用程序中的字符串还包含尾随空格 如何自动删除尾随空格? EF

NET MVC Core 5应用程序使用Npgsql实体框架核心数据提供程序使用实体框架核心从Postgres数据库获取数据

数据库中的列定义为
CHAR(n)
type,如:

create table prpalk (
    sfirmanimi char(100)
);
无法将列类型更改为varchar

使用EF命令,如:

string nimi = ctx.Prpalks.Single().Sfirmanimi;
要获取数据,应用程序中的字符串还包含尾随空格

如何自动删除尾随空格? EF Core中是否存在一些事件,当返回到then应用程序时,这些事件可用于修剪所有字符串列

我还没有在EF数据提供者、Npgsql或Postgres数据库中找到这样的设置。
由于与现有代码兼容,无法将列类型更改为varchar。

考虑使用
text
varchar
(带或不带大小方面),它们都不具有此行为。

考虑使用
text
varchar
(带或不带大小方面),没有这种行为。

如果您有这种需要,您可能还需要一种类似的机制(通常)转换所有属性值(映射到某个列),例如:不需要修剪尾随空格,而需要将所有属性值都小写。。。因此,一般的答案是手动修剪它,尝试将逻辑放在一个地方,以便您可以轻松地维护它。实际上在DDD中,这是所谓业务规则的一部分,通常放在聚合根的方法中。到处添加
.TrimEnd()
会使代码变得丑陋。根据Sql规范,字符列中的尾随空格将被忽略。在服务器SQL commans中,这是自动完成的。可能EF Core中有一些事件处理程序,可以在一个位置修剪所有列。丑陋的代码:为不正确的数据键入所付出的代价。如果您有这样的需要,您可能还需要(通常)转换所有属性值(映射到某个列)的类似机制,例如:不修剪尾随空间,您需要将所有。。。因此,一般的答案是手动修剪它,尝试将逻辑放在一个地方,以便您可以轻松地维护它。实际上在DDD中,这是所谓业务规则的一部分,通常放在聚合根的方法中。到处添加
.TrimEnd()
会使代码变得丑陋。根据Sql规范,字符列中的尾随空格将被忽略。在服务器SQL commans中,这是自动完成的。也许EF Core中有一些事件处理程序可以在一个地方修剪所有列。丑陋的代码:为不正确的数据输入付出的代价。谢谢。不幸的是,由于与现有应用程序的兼容性,当前无法更改数据库列类型。也许Dapper允许这样做。我在“谢谢”中发布了一个真实的问题。不幸的是,由于与现有应用程序的兼容性,当前无法更改数据库列类型。也许Dapper允许这样做。我把不动产问题贴在了