【发布时间】:2012-03-19 08:25:37
【问题描述】:
我想使用 LINQ2SQL 从数据库中删除一个实体,而不必预先获取它(出于性能原因)。
我知道这可以通过以下方式完成(Delete a LINQ to SQL record without loading it first):
public void Delete(int id)
{
var e = new TestEntity { Id = id };
_context.TestEntities.Attach(e, false);
_context.TestEntities.DeleteOnSubmit(e);
}
但是当 TestEntity 包含类似于以下的日期时间时:
public class TestEntity
{
public int Id { get; set; }
public String TestString { get; set; }
public DateTime TestDate { get; set; }
public int TestInt { get; set; }
}
我收到以下错误:
SqlDateTime 溢出。必须在 1753 年 1 月 1 日凌晨 12:00:00 到 9999 年 12 月 31 日晚上 11:59:59。
这基本上意味着它试图根据 SQL 日期时间验证 .net 默认日期时间
有没有一种方法可以在不需要预取的情况下删除一个不可为空的实体?
*注意,我还尝试将日期时间值设置为虚拟值,在这种情况下,我得到以下信息:
未找到或更改行。
【问题讨论】:
标签: c# linq-to-sql