【发布时间】:2012-10-23 06:41:13
【问题描述】:
我在 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# 中使用它们。
【问题讨论】:
-
> 当我查询时,我得到了表中的所有内容。但是我不想加载某些标记为特殊键 Y 的行 - 那么,如果您不需要一些记录,为什么要加载整个表内容?只是不要加载它们。
-
实际上,我有一个表,实习生链接到许多表.. 所以,在这种情况下,我根据一个条件加载内容,我稍后会过滤,所以.. 如何解决这个问题有什么想法吗?
-
考虑研究
Where()方法:msdn.microsoft.com/en-us/library/bb535040.aspx -
从 DC 加载后我们不能在本地删除吗?为什么它会抛出异常..为什么我们应该只使用 were() 加载???
-
在删除多余的行之前尝试执行 ToList()。通过将 IQueryable 结果转换为 IEnuerable 结果,这应该会破坏 db 链接。
标签: c# sql linq linq-to-sql linq-to-entities