c# - 日期时间的 Linq-To-Sql 问题?

标签 c# linq-to-sql sql-server-express sql-server-2008-express

好的,我正在使用 SQL Server Express 2008 和 .Net 3.5 (c#)

我在数据库中有几个日期时间字段,我正在尝试对一行进行编辑(使用 Linq-to-Sql)我收到错误“未找到或更改行”。

我花了一些时间获取生成的 SQL,问题似乎是由附加到日期时间的毫秒数引起的。

生成的 SQL 不起作用,

 @p5: Input DateTime (Size = 0; Prec = 0; Scale = 0) [20/10/2009 16:04:45]
 @p6: Input DateTime (Size = 0; Prec = 0; Scale = 0) [23/10/2009 10:15:36]
 @p7: Input DateTime (Size = 0; Prec = 0; Scale = 0) [23/10/2009 09:27:27]

AND ([SignUpDate] = @p5) 
AND ([LastActivityDate] = @p6) 
AND ([LastLoginDate] = @p7) 

如果我自己修改它就可以了,

 @p5: Input DateTime (Size = 0; Prec = 0; Scale = 0) [20/10/2009 16:04:45.390]
 @p6: Input DateTime (Size = 0; Prec = 0; Scale = 0) [23/10/2009 10:15:36.733]
 @p7: Input DateTime (Size = 0; Prec = 0; Scale = 0) [23/10/2009 09:27:27.747]

AND ([SignUpDate] = @p5) 
AND ([LastActivityDate] = @p6) 
AND ([LastLoginDate] = @p7) 

我有哪些方法可以解决这个问题?

只是添加这是我的编辑代码,

var UserToEdit = this.GetUser(UserId);

UserToEdit.Forename = Fields["Forename"];
UserToEdit.Surname = Fields["Surname"];
UserToEdit.DateOfBirth = Convert.ToDateTime(Fields["DateOfBirth"]);
UserToEdit.DisplayName = Fields["DisplayName"];
UserToEdit.TelephoneNumber = Fields["TelephoneNumber"];

_db.SubmitChanges();

最佳答案

查看此链接,

System.Data.Linq.ChangeConflictException: Row not found or changed

# High precision datetime fields are used. The solution is to set

UpdateCheck to never for that column your DBML file

这解决了我的问题,但感觉有点像 hack。

我将此开放以查看其他人的想法。

关于c# - 日期时间的 Linq-To-Sql 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1612358/

相关文章:

c# - 同时运行多个 Selenium Chrome 配置文件

c# - Linq-To-Sql Dynamic-Where-Clauses 在 Framework 3.5 中甚至可能吗?

linq - 当字段需要首先解析时,如何在 linq 查询中进行过滤?

sql-server - 如何连接SQL Server 2008 Express?

sql-server - SQL Server Express与Express LocalDB

asp.net - 有没有办法以编程方式将 blob/富文本备忘录存储为 rtf,而不是数据库?

c# - 在 C# 中,将方法包含在此类中的目的是什么?

c# - JSON 中出现意外标记

c# - 当前上下文中不存在麦克风

sql - COUNT(1) OVER() with Linq to Sql