0

EF4 を使用すると、プロパティのプロパティごとに並べ替えることができます。つまり、

Name プロパティを持つ EntityA。エンティティ B には、いくつかの他のプロパティとエンティティ A があります。EntityA.Nameで並べたEntityBの一覧を取得したい

entityBList = _repo.Find<EntityB>() .OrderBy(x => x.EntityA.Name);
4

2 に答える 2

0

なぜこれが機能しないのですか?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; }
        }
    }

出力:
EntityB.Name: C、序数 1.
EntityB.Name: B、序数 2.
EntityB.Name: A、序数 3.

于 2013-04-17T05:29:47.353 に答える
0

name プロパティは単純な文字列ですか、それとも First name と Last Name を組み込んでいますか? その場合、GetHashCode メソッドをオーバーライドしますか? その場合は、この投稿を参照してください。オーバーライドされた System.Object.GetHashCode に最適なアルゴリズムは何ですか?

于 2013-04-17T05:48:33.267 に答える