我正在使用LinqToSql,就像你在主题上看到的一样。
我有一张桌子和一些柱子。有一个列显示记录状态。
0 : Not approved yet
1 : Approved
2 : Deleted
首先插入记录时,其值为0(默认值)。 当用户批准它时,它的值会变为1,但我收到此错误:
Value of member 'state' of an object of type 'News' changed.
A member that is computed or generated by the database cannot be changed.
这是测试代码:
DataClassesDataContext dc = new DataClassesDataContext();
var b = dc.GetTable<Ekler>().Where(p => p.ek_id == 1).FirstOrDefault();
if (b!=null)
{
b.state= "1";
dc.SubmitChanges();
}
我该怎么做才能解决这个问题?
答案 0 :(得分:3)
您应该在设计器中查看数据上下文和/或数据库本身的“state”列的定义。基本上LINQ to SQL认为这类似于自动生成的值或者在数据库中计算的值 - 而不是应该手动编辑的值。如果它应可以手动更新(听起来像),你需要告诉LINQ to SQL。
答案 1 :(得分:1)
答案 2 :(得分:0)
当我们尝试更新数据库中的记录时,我遇到了同样的问题。我们可以插入,但是当我们尝试使用数据库中的一个计算列更新记录时,它会给出如下错误:“类型对象的成员值已更改。由数据库计算或生成的成员不能改变。“
解决方案:我们无法更新数据库中的该字段,但我们可以编辑引用它的计算列的引用字段。当我们更新引用字段时,计算列会自动更新表中的此字段。
如果您有任何进一步的询问,请告诉我。
谢谢..