【发布时间】:2013-12-18 05:26:24
【问题描述】:
如果想在某些实体框架选择上使用Include() 方法(以避免“对象已处理”异常)。
但是 Include 只接受一个字符串作为参数,这意味着只包含一个。
要进行多个包含,您必须链接包含.Include("something").Include("something").Include("something")
但我希望我的包含来自字符串数组。
所以我想写的相当于.Include(array[0]).Include(array[1]).Include(array[2])...Include(array[n])
(其中'n' = array.Length - 1)
当然我事先不知道字符串数组中会是什么。
但到目前为止我找不到正确的语法。 谢谢你的帮助
编辑:鉴于我到目前为止的建议,我想说请准确说明类型并避免空值问题并对其进行测试。到目前为止,似乎没有任何解决方案有效,我迷失在我能用这种或那种类型做什么和不能做什么。
【问题讨论】:
-
我认为
.Include("something,something2,something3")会起作用 -
@MehmetInce 没有接受“字符串参数”的 Include 方法的重载;因此,除非您明确定义该方法,否则这是不可能的。
-
@Mehmet:我尝试了逗号分隔“Entity1.Entity1b,Entity2.Entity2b”,但我收到并错误提及“Entity1b,Entity2”
-
永远不要盲目地链接包含。你知道他们对你的查询输出做了什么吗?输出可以根据关联的多样性呈指数增长。三个以上的包含应该是例外且经过深思熟虑的。
标签: c# arrays entity-framework include