如何从本地副本中删除实体而不从Linq DB中删除

时间:2012-10-23 06:41:14

标签: c# sql linq linq-to-sql linq-to-entities

我在Linq遇到了问题。当我查询时,我得到表中的所有内容。但我不想加载某些标有某个特殊键Y的行。

所以,为此,我正在迭代并从我的本地副本中删除具有特殊键Y的那些。

稍后,当我提交更改时,我收到错误:

"An attempt was made to remove a relationship between a priceTable and a dataTable. However, one of the relationship's foreign keys (P.Id) cannot be set to null."

为什么会这样?如何在不触及某些行的情况下更改特定实体集的内容?

我希望不会从数据库返回标记为Y的行。我不想在运行时在我的c#中使用它们。

1 个答案:

答案 0 :(得分:0)

丹尼斯是对的。如果您不需要标记为“Y”的记录,则使用where子句并排除这些记录。然后,您可以自由地修改记录并将其更新回数据库而不会出现任何问题。

示例where子句如下所示

var data = from p in context.Persons
           where p.Required == "Y"
           select p;