如果我包含计算列,则LINQ to SQL不会更新

时间:2010-02-10 01:18:41

标签: sql linq sql-update

我使用以下LINQ代码填充DataGrid:

        Dim myClients = From p In dc.Persons _
                    Select p

我可以导航我的DataGrid,进行更改,然后单击一个调用

的按钮
        dc.SubmitChanges()

所有这些都能正常运行并更新SQL Server。

然后,我想添加一个额外的列,该列将根据函数显示计算的年龄。我使用以下代码创建了一个PersonAge列并且它可以工作。

        Dim myClients = From p In dc.Persons _
                Select New With {p.PersonID, _
                     p.PersonName, _
                     p.PersonGender, _
                     .PersonAge = CalcCurrentAge(p.PersonDOB, p.PersonFirstContactDate, p.PersonFirstContactAge) _
                     }

但是,我注意到我无法再将任何更新成功保存回SQL。

所以我的问题是,如何才能简化第一个正确保存更新的LINQ代码,并将其与包含PersonAge列的第二个LINQ代码混合,以创建具有计算年龄列的可更新DataGrid?

1 个答案:

答案 0 :(得分:3)

在DataGrid中计算数据列,而不是在Linq语句中计算。

http://www.dotnetjohn.com/articles.aspx?articleid=18