当使用从linq到sql的Viewmodels时,我遇到了架构问题。
如果你有一个db中的对象(让我们说“人”),你就可以在你的viewmodel中加载它。在您的视图中,当您尝试访问引用的类时(假设一个人有子对象,这是db中的不同表,以及不同的datacontext对象)。你得到一个“无法访问配置的datacontext对象(或其他东西),这是逻辑的,因为你加载了你的对象并处理了datacontext。例如:
“object” - > foreach(Model.Person.Children.ToList()中的Child child} {}
但你怎么能这样做,以便你可以(“预加载?”)孩子或访问他们而不必创建一个新的datacontext,并重新加载你的视图中的人?
答案 0 :(得分:1)
使用DataLoadOptions.LoadWith()
请参阅此处的示例:http://msdn.microsoft.com/en-us/library/Bb386917(v=VS.90).aspx
您必须指定DataLoadOptions
并在执行任何查询之前分配给DataContext实例。