gpt4 book ai didi

.net - Column.DbType 影响运行时行为

转载 作者:行者123 更新时间:2023-12-04 07:08:25 26 4
gpt4 key购买 nike

根据MSDN docs ,列类型/元素的 DbType 属性/属性仅用于数据库创建。

然而,今天,当尝试将数据提交到 SQLCE 数据库上的 IMAGE 列时(不确定是否仅在 CE 上),我收到了“数据被截断为 8000 字节”的异常。这是因为 DbType 仍被定义为 SQLCE 不支持的 VARBINARY(MAX)。将 DbType 中的类型更改为 IMAGE 可解决此问题。

那么,Linq2SQL 属性还有哪些其他惊喜呢?这是错误还是有意为之?我应该向 MS 报告吗?

更新

从 Guffa 得到答案后,我对其进行了测试,但似乎 NVARCHAR(10) 添加 11 个字符长度的字符串会导致 SQL 异常,而不是 Linq2SQL 异常。

The data was truncated while converting from one data type to another. 
[ Name of function(if known) = ]
A first chance exception of type 'System.Data.SqlServerCe.SqlCeException'
occurred in System.Data.SqlServerCe.dll

最佳答案

仅当您要创建表时才需要 DbType,但这并不意味着它在其余时间被忽略。

例如,如果您定义一个大小为 100 的 VarChar 列,如果您发送的字符串超过 100 个字符,即使数据库中的字段实际上可以容纳该字符串,您也会收到异常。

该文档说,如果不需要,则不应指定 DbType,因为数据类型是从您使用的值推断出来的。但是,在某些情况下,您可能不希望它使用推断的 DbType。

关于.net - Column.DbType 影响运行时行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/751427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com