C# - BulkInsert() 可以自动截断太长的字符串吗?

问题描述

我使用了很多与此类似的批量插入调用

List<Object> list = someSetofData;
dbcontext.BulkInsert(list);

每个对象都有多个字符串属性,在数据库中只能是一定长度。根据插入的数据量,如果我在插入之前手动检查每个字符串的长度是否正确,它会减慢应用程序的速度。有没有办法告诉 BulkInsert 自动截断任何太长的字符串(这样它就不会抛出异常)?另外,如果有办法做到这一点,它会告诉我它何时实际截断字符串吗?

如果没有,您还建议尝试什么?

解决方法

这看起来很有趣,你必须在点击 savechanges 之前调用其他东西。

Entity Framework 4.0 Automatically Truncate/Trim String Before Insert

.NET Core 的另一种解决方案: https://medium.com/@paullorica/automatically-truncate-strings-in-an-ef-core-entity-based-on-maxlength-property-93e17ea7cd43