【发布时间】:2011-10-07 07:45:16
【问题描述】:
我正在尝试在通用存储库中创建一个更新方法作为 LINQ to SQL 数据访问层。
我有一个这样的实体:
[Table]
public class Product
{
[Column(IsPrimaryKey = true, IsDbGenerated = true,
DbType = "Int NOT NULL IDENTITY")]
public int Id { get; private set; }
[Column(UpdateCheck = UpdateCheck.Never)]
public string Name { get; set; }
....
}
我为@jeff Atwood 在this post 中建议的所有字段设置了Update Check = true,并将attach 方法中的asModified 属性设置为我在this post 中找到的true,如下所示:
public void Update(T entity)
{
_db.GetTable<T>().Attach(entity, true);
_db.SubmitChanges();
}
但我总是遇到同样的异常:
一个实体只能在没有原始状态的情况下附加为已修改的,如果 它声明了一个版本成员或没有更新检查策略。
那有什么问题???
除了创建时间戳列作为版本号之外,您是否推荐任何其他方法来在通用存储库中创建更新方法。
【问题讨论】:
标签: c# linq-to-sql updatecheck