gpt4 book ai didi

sql - Linq2Sql 中的 System.DateTime 和 Sql datetime2(使用 sqlmetal)

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

我想使用新的 Sql datetime2 数据类型进行事件记录(因为标准日期时间的精度低于 System.DateTime,导致存储时数据丢失)但是当我使用 sqlmetal.exe 生成代码,但收到以下警告:

db.dbml(98) : Warning DBML1008: Mapping between DbType 'DateTime2(7) NOT NULL' and Type 'System.DateTime' in Column 'CreatedOn' of Type 'Event' may cause data loss when loading from the database.

如果我将列定义更改为 datetime2(2) 但 2 位精度低于 System.DateTime 可以处理,警告就会消失,对吗?为什么?我怎样才能抑制警告?

最佳答案

您可以忽略该警告。我检查了 sqlmetal 的源代码(使用 Reflector)并发现了这个:

case SqlDbType.DateTime2:
if (scale <= 2)
return Compatibility.Compatible;
else
return Compatibility.DataLossFromDatabase;

但是,从示例数据库查询 datetime2 字段返回了整个 7 位精度。

关于sql - Linq2Sql 中的 System.DateTime 和 Sql datetime2(使用 sqlmetal),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5190697/

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