Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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
C# Linq到Sql强制按顺序执行_C#_.net_Linq_Linq To Sql_.net 3.5 - Fatal编程技术网

C# Linq到Sql强制按顺序执行

C# Linq到Sql强制按顺序执行,c#,.net,linq,linq-to-sql,.net-3.5,C#,.net,Linq,Linq To Sql,.net 3.5,在Linq to Sql(.net 3.5)中,有没有一种方法可以指定在获取特定记录的子记录时,强制子记录列表按特定顺序返回 例如,我有一个列表,上面有一个“DisplayOrder”。当我向父记录/对象请求返回此列表的属性时,我希望Linq to Sql为我检索记录,但按“DisplayOrder”排序 是否可以在不总是写下以下内容的情况下执行此操作: MyObject.Children.OrderBy(c => c.DisplayOrder); 我的想法是为我的对象创建一个分部类,并

在Linq to Sql(.net 3.5)中,有没有一种方法可以指定在获取特定记录的子记录时,强制子记录列表按特定顺序返回

例如,我有一个列表,上面有一个“DisplayOrder”。当我向父记录/对象请求返回此列表的属性时,我希望Linq to Sql为我检索记录,但按“DisplayOrder”排序

是否可以在不总是写下以下内容的情况下执行此操作:

MyObject.Children.OrderBy(c => c.DisplayOrder);
我的想法是为我的对象创建一个分部类,并添加一个“OrderedChildren”属性来封装这个调用。但是我想知道,如果dbml中没有我可以指定的东西来强制执行此操作。

该方法将针对特定关系过滤所有对象。这包括
Where()
OrderBy()
ThenBy()
OrderByDescending()
ThenByDescending()
,以及
Take()

您可以在
DataContext
中的分部方法中使用此选项,如下所示:

partial class ExampleDataContext
{
    partial void OnCreated()
    {
        DataLoadOptions dlo = new DataLoadOptions();
        dlo.AssociateWith<MyObject>(i => i.Children.OrderBy(c => c.DisplayOrder));
        LoadOptions = dlo;
    }
}
部分类ExampleDataContext
{
部分void OnCreated()
{
DataLoadOptions dlo=新的DataLoadOptions();
dlo.AssociateWith(i=>i.Children.OrderBy(c=>c.DisplayOrder));
LoadOptions=dlo;
}
}

您需要确保在运行其他查询之前不会覆盖
LoadOptions

询问是否有方法可以在每次加载“MyObject”的子记录时操纵dbml来执行此操作。排序设置默认的加载排序顺序。这可能不直接在dbml中,但现在应该可以解决您的问题。可能有一种方法可以确保只有在查询
MyObjects
表时才会发生这种情况,但我还没有找到它。