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
对象上的linq OrderBy属性_Linq_Entity Framework 4 - Fatal编程技术网

对象上的linq OrderBy属性

对象上的linq OrderBy属性,linq,entity-framework-4,Linq,Entity Framework 4,使用EF4可以按属性对属性进行排序,即 具有Name属性的EntityA。 实体B有一些其他属性和实体a。 我想按EntityA.Name获取EntityB的列表 entityBList = _repo.Find<EntityB>() .OrderBy(x => x.EntityA.Name); entityBList=\u repo.Find().OrderBy(x=>x.EntityA.Name); 为什么这不起作用?我知道它没有使用EF4,但概念是一样的 usi

使用EF4可以按属性对属性进行排序,即

具有Name属性的EntityA。 实体B有一些其他属性和实体a。 我想按EntityA.Name获取EntityB的列表

entityBList = _repo.Find<EntityB>() .OrderBy(x => x.EntityA.Name);
entityBList=\u repo.Find().OrderBy(x=>x.EntityA.Name);

为什么这不起作用?我知道它没有使用EF4,但概念是一样的

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace LinqOrderByReference
    {
        class Program
        {
            static void Main(string[] args)
            {
                EntityA[] entitiesA = {   new EntityA { Ordinal = 3, SecretCode = "xxx"}, 
                                          new EntityA { Ordinal = 2 ,SecretCode = "x"}, 
                                          new EntityA { Ordinal = 1 ,SecretCode = "x"} };
                EntityB[] entitiesB = {  new EntityB { Name = "C", EntityA = entitiesA[2] }, 
                                          new EntityB {Name = "B", EntityA = entitiesA[1] },
                                          new EntityB {Name = "A", EntityA = entitiesA[0] } };

                IEnumerable<EntityB> entitiesBList = entitiesB.OrderBy(x => x.EntityA.Ordinal);
                foreach (EntityB b in entitiesBList)
                {
                    Console.WriteLine("EntityB.Name: {0}, Ordinal {1}.", b.Name, b.EntityA.Ordinal);
                }
                Console.Read();
            }
        }

        public class EntityA
        {
            public int Ordinal { get; set; }
            public string SecretCode { get; set; }
        }

        public class EntityB
        {
            public string Name { get; set; }
            public EntityA EntityA { get; set; }
        }
    }
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
名称空间LinqOrderByReference
{
班级计划
{
静态void Main(字符串[]参数)
{
EntityA[]EntityA={new EntityA{Ordinal=3,SecretCode=“xxx”},
新实体a{Ordinal=2,SecretCode=“x”},
新实体a{Ordinal=1,SecretCode=“x”};
EntityB[]entitiesB={new EntityB{Name=“C”,EntityA=entitiesA[2]},
新的EntityB{Name=“B”,EntityA=entitiesA[1]},
新的EntityB{Name=“A”,EntityA=entitiesA[0]};
IEnumerable entitiesBList=entitiesB.OrderBy(x=>x.EntityA.Ordinal);
foreach(实体列表中的实体b)
{
WriteLine(“EntityB.Name:{0},序号{1}.”,b.Name,b.EntityA.Ordinal);
}
Console.Read();
}
}
公共类实体
{
公共整数序号{get;set;}
公共字符串SecretCode{get;set;}
}
公共类实体B
{
公共字符串名称{get;set;}
public EntityA EntityA{get;set;}
}
}
输出为:
实体名称:C,序号1
实体名称:B,序号2

实体名称:A,序号3

name属性是一个简单的字符串,还是它包含了名字和姓氏,如果是,它是否覆盖GetHashCode方法?如果是这样,你可能想看看这篇文章

请发布你的代码是的。如果您遇到问题,您需要详细说明。添加到我的代码中,它会返回一个项目列表,只是无序。您尝试过这个吗?你有什么错误?
Find
返回的是什么类型?您的思路是正确的,但如果您还没有弄清楚,还需要更多详细信息。