Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 如何阻止自动生成的Linq to SQL类加载所有数据?_Visual Studio_Linq_Linq To Sql_Mv - Fatal编程技术网

Visual studio 如何阻止自动生成的Linq to SQL类加载所有数据?

Visual studio 如何阻止自动生成的Linq to SQL类加载所有数据?,visual-studio,linq,linq-to-sql,mv,Visual Studio,Linq,Linq To Sql,Mv,副本 在那里张贴答案 我有一个ASP.NETMVC项目,很像教程中的例子。(我使用的是MVC2,但为了创建它,我遵循了NerdDinner教程) 按照本教程中的说明,我创建了一个“LINQtoSQL类”(.dbml)图面,并将数据库表放到该图面上,从而为数据库创建了一个LINQtoSQL模型。设计器已根据我的数据库表自动添加生成的类之间的关系 假设我的类与NerdDinner示例相同,因此我有晚餐和RSVP表,其中每个晚餐记录都与许多RSVP记录关联-因此在生成的类中,晚餐对象有一个RSVPs属

副本 在那里张贴答案

我有一个ASP.NETMVC项目,很像教程中的例子。(我使用的是MVC2,但为了创建它,我遵循了NerdDinner教程)

按照本教程中的说明,我创建了一个“LINQtoSQL类”(.dbml)图面,并将数据库表放到该图面上,从而为数据库创建了一个LINQtoSQL模型。设计器已根据我的数据库表自动添加生成的类之间的关系

假设我的类与NerdDinner示例相同,因此我有晚餐和RSVP表,其中每个晚餐记录都与许多RSVP记录关联-因此在生成的类中,晚餐对象有一个RSVPs属性,它是RSVP对象的列表

我的问题是:看来(我很乐意证明我错了),只要我 访问晚餐对象时,它正在加载所有相应的RSVP对象,即使我不使用RSVPs成员

第一个问题:这真的是生成的类的默认行为吗

在我的特殊情况下,对象图包含更多的表(它们的记录数量级更多),因此这是一种灾难性的行为——当我只想显示单个父记录的详细信息时,我将加载大量数据

第二个问题:是否有通过设计器UI公开的属性允许我修改此行为?(我找不到)


第三个问题:我看到了一个关于如何使用与DataContext关联的
DataShape
对象控制
DataContext
中相关记录加载的描述。这就是我要做的吗?如果是的话,有没有像NerdDinner那样的教程,不仅能说明如何做,而且能为正常使用提供一种“模式”?

鉴于晚餐课程,它不会自动加载外键关系属性。必须设置数据加载选项才能使其工作,如中所示:

var o = new DataLoadOptions();
o.LoadWith<Dinner>(i => i.RSVPs);
var o=newdataloadoptions();
o、 加载(i=>i.RSVPs);
但是,无论何时您访问RSVP,默认情况下它都会自动加载这些RSVP(如果您也在intellisense中导航到该属性,仅供参考)