在Entity Framework保存时修剪字符串

4
我正在使用Entity Framework Code First构建一个ASP.NET MVC web应用程序,其中客户习惯于在字符串末尾添加空格。
很明显使用Trim()是修复问题的正确答案,但是记得在整个项目中逐个修剪并不是正确的做法。我搜索了一些相关信息,发现了ASP.NET MVC:修剪数据输入后的字符串的最佳方法。我应该创建自定义模型绑定器吗?他们创建了一个自定义模型绑定器,但我担心每次加载页面时绑定模型都会影响性能。似乎在调用SaveChanges()时修剪字符串将是最有效的方式,因为修剪后的内容将存储到数据库中。
所以我的问题是,在此处覆盖SaveChanges()并从ObjectContext中获取所有已添加和修改的对象,然后使用反射来修剪每个字符串是否是正确的做法?还是使用模型绑定器是正确的方法?

如果你真的想在每个地方都这样做,我会选择自定义模型绑定器。但我不确定每个字段都绝对需要修剪...很多时候,你并不介意,是吗?如果你不介意,在需要的地方进行Trim(),而不是到处都进行。至于性能问题,我认为在被卡住这个问题之前,你会有其他性能问题... - Raphaël Althaus
1
自定义模型绑定器似乎是实现此目的的可接受方式。此外,如果您想要更加有选择性,而不是覆盖SaveChanges()方法,您可以尝试使用SavingChanges事件作为替代方案。 - nkvu
@RaphaëlAlthaus 由于数据显示给用户的方式,有很多次需要考虑。我们只是想以正确的方式解决问题,而不是到处修补代码。 - Steven V
1个回答

5
我认为你太过担心性能问题了。模型绑定器很好,我们在整个应用程序中都使用了这种方法。
MVC框架非常庞大,额外的模型绑定器并不会带来太多负担。
此外,我们发现有些情况下需要防止修剪。因此,模型绑定器非常完美,因为它允许我们排除某些字段。
模型绑定器是标准的MVC行为。如果您在数据库级别上执行此操作,则会隐藏它。
因此,如果是我,我会在ModelBinder中执行此操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接