Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.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# 实体框架:按主键自动排序通用数据库集_C#_Entity Framework_Generics - Fatal编程技术网

C# 实体框架:按主键自动排序通用数据库集

C# 实体框架:按主键自动排序通用数据库集,c#,entity-framework,generics,C#,Entity Framework,Generics,作为通用存储库模式的一部分,我有一个DbSet——一个通用实体框架IQueryable集合。tenty的类型可能会有所不同,但我知道我想按主键排序 我可以在EF中一般地这样做,而不必事先知道类型吗?否则,我们如何才能在不知道类型的情况下为重复器跳过()->Take()。我认为您可以为可查询集合创建一个扩展方法,如这些方法假设实体类中的键字段正确地用键属性修饰。看起来仍然需要我向其传递一个排序字段。。。我的想法更像是我想在其中一个属性上添加某种[DefaultSort]属性,然后调用按默认值排序的

作为通用存储库模式的一部分,我有一个
DbSet
——一个通用实体框架
IQueryable
集合。tenty的类型可能会有所不同,但我知道我想按主键排序


我可以在EF中一般地这样做,而不必事先知道类型吗?否则,我们如何才能在不知道类型的情况下为重复器跳过()->Take()。

我认为您可以为可查询集合创建一个扩展方法,如

这些方法假设实体类中的键字段正确地用键属性修饰。

看起来仍然需要我向其传递一个排序字段。。。我的想法更像是我想在其中一个属性上添加某种[DefaultSort]属性,然后调用按默认值排序的Sort()方法。您可以创建自定义属性并使用反射查找所需的属性。使用
[Key]
属性只是指示主键属性的一种方法。最可靠的方法是查询上下文元数据以确定主键。回答得好。我想我将创建自己的[DefaultSort]属性,并使用扩展方法来查找它(如果不存在,则抛出异常)。