Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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
Asp.net 数据库中字符串值的全局替换_Asp.net_Sql Server_Entity Framework - Fatal编程技术网

Asp.net 数据库中字符串值的全局替换

Asp.net 数据库中字符串值的全局替换,asp.net,sql-server,entity-framework,Asp.net,Sql Server,Entity Framework,我有一个非常独特的情况,我被要求使用现有数据库制作桌面产品的web版本。问题是,该产品的前一位开发人员在保存记录时,将空的#放在字符串中,这样数据库的表几乎在所有字符串类型的列中都用#填充。他有一个函数,在引用任何字段时,都会将其去掉,这样就不会显示#了(这就引出了一个问题,为什么他会包括它们!!) 我的问题是,我希望能够使用ASP.Net、实体框架、模型等,这样我就可以简单地在Web Api中返回模型或模型的IEnumerables,但仅仅这样做就意味着文本框中会有一个# 与其在客户端或服务器

我有一个非常独特的情况,我被要求使用现有数据库制作桌面产品的web版本。问题是,该产品的前一位开发人员在保存记录时,将空的#放在字符串中,这样数据库的表几乎在所有字符串类型的列中都用#填充。他有一个函数,在引用任何字段时,都会将其去掉,这样就不会显示#了(这就引出了一个问题,为什么他会包括它们!!)

我的问题是,我希望能够使用ASP.Net、实体框架、模型等,这样我就可以简单地在Web Api中返回模型或模型的IEnumerables,但仅仅这样做就意味着文本框中会有一个#


与其在客户端或服务器端创建某种函数,谁能建议一种在整个sql server数据库中用空值全局替换#的可能方法,或者建议想到的任何其他可能的解决方案?

为什么不简单地使用更新脚本将“#”转换为NULL或其他内容:

update dbo.X
set Value1 = NULL
when Value1 = '#'
这可能是一个更大的努力,但将是一次性的,值得它使事情更容易为您的未来发展


除此之外,EF或.NET没有任何隐含的东西会自动删除这些内容;您需要编写一个例程来完成它。EF会让这更痛苦,因为您不能在LINQ查询中使用自定义例程,它将转换为SQL。

我修改了上面的例程,它工作正常,但我不能包含ntext类型,我可以使用上面的变体吗?您只需找到一个值并设置一个新值。不需要替换。问题是有很多表,只需要检查字符串类型字段。如果我手动编写脚本,它将花费数周的时间,对于将循环所有表和某些字段类型的脚本有何建议?您可以尝试利用包含所有元数据的INFORMATION_SCHEMA.tables和INFORMATION_SCHEMA.COLUMNS视图。我会使用的一个技巧是使用select语句查询update语句,如
select'updatedbo.+TABLE\u NAME+'set'+COLUMN\u NAME+'=NULL,其中'+COLUMN\u NAME+'=''''''.'.\#'
。差不多吧。不幸的是,这是某些设计决策的后果。。。