C# LINQ到SQL延迟加载 DBML

C# LINQ到SQL延迟加载 DBML,c#,linq-to-sql,lazy-loading,deferred-loading,C#,Linq To Sql,Lazy Loading,Deferred Loading,我的dbml中有以下实体:(作为示例补充) 结果对象设置了“书本属性”和“媒体属性”及其所有值 调试时,当我在“监视”对话框中查看AuthorsForMedia时,设置了以下值: Count = 0 HasLoadedOrAssignedValues = false IsDeferred = false 问题1 为什么不能使用延迟加载来计算AuthorsFormMedia的值(以及相应的Author属性) 我试过的东西 看完这个问题: 我用LoadWith/AssoicateWith尝

我的dbml中有以下实体:(作为示例补充)

结果对象设置了“书本属性”和“媒体属性”及其所有值

调试时,当我在“监视”对话框中查看AuthorsForMedia时,设置了以下值:

Count = 0 
HasLoadedOrAssignedValues = false
IsDeferred = false
问题1 为什么不能使用延迟加载来计算AuthorsFormMedia的值(以及相应的Author属性)

我试过的东西 看完这个问题:

我用LoadWith/AssoicateWith尝试了DataLoadOptions,但没有成功。我最后犯了这样的错误

  • 无法创建类Foo的实例错误:System.NotSupportedException:Book类型的媒体不支持子查询
  • 。。。System.InvalidOperationException:指定的表达式必须采用p.A的形式,其中p是参数,A是属性或字段成员
  • 或者价值根本不存在
如果有帮助的话,我可以为所有这些提供代码片段,但我认为这是一个概念性的问题,而不是语法性的问题

总结
我应该如何检索这些值,应该是一个左连接,还是其他我目前还没有找到的值?

DataLoadOptions和LoadWith()是您需要的


您如何称呼他们?

这就是LoadWith的外观

DataLoadOptions dlOptions = new DataLoadOptions();
dlOptions.LoadWith<Books>(book => book.AuthorsForMedia);
db.LoadOptions = dlOptions;
DataLoadOptions dlOptions=newdataloadoptions();
dlOptions.LoadWith(book=>book.AuthorsForMedia);
db.LoadOptions=dlOptions;
Count = 0 
HasLoadedOrAssignedValues = false
IsDeferred = false
DataLoadOptions dlOptions = new DataLoadOptions();
dlOptions.LoadWith<Books>(book => book.AuthorsForMedia);
db.LoadOptions = dlOptions;