1

MVC のモデルで linq クエリに問題があります。ObjectSet と EntityObject で構成される edmx があります。これは、「 CanaClie0012の c から」というエラーが発生する場所です。私が定義に行くとき、それは私のエンティティオブジェクトに行きます。

   public class ClientRepository
    {

        public List<ClientSearchResult> Search(ClientSearchFilter filter, string sortColumn, string sortOrder, int pageSize, int pageIndex, out int totalRecords)
        {

            var q = from c in CanaClie0012
                    select new ClientSearchResult
                    {
                        Client00130012 = c.Client00130012,
                        F1Pais00200012 = c.F1Pais00200012,
                        F1Cana02530012 = c.F1Cana02530012,
                        Direcc0012 = c.Direcc0012,
                    };

            if (!string.IsNullOrEmpty(filter.Client00130012))
            {
                q = q.Where(c => c.Client00130012.ToLower().Contains(filter.Client00130012.ToLower()));
            }
            if (!string.IsNullOrEmpty(filter.F1Pais00200012))
            {
                q = q.Where(c => c.F1Pais00200012.ToLower().Contains(filter.F1Pais00200012.ToLower()));
            }
            if (!string.IsNullOrEmpty(filter.F1Cana02530012))
            {
                q = q.Where(c => c.F1Cana02530012.ToLower().Contains(filter.F1Cana02530012.ToLower()));
            }
            if (!string.IsNullOrEmpty(filter.Direcc0012))
            {
                q = q.Where(c => c.F1Cana02530012.ToLower().Contains(filter.F1Cana02530012.ToLower()));
            }


            switch (sortColumn)
            {
                case "Client00130012":
                    q = (sortOrder == "desc") ? q.OrderByDescending(c => c.Client00130012) : q.OrderBy(c => c.Client00130012);
                    break;
                case "F1Pais00200012":
                    q = (sortOrder == "desc") ? q.OrderByDescending(c => c.F1Pais00200012) : q.OrderBy(c => c.F1Pais00200012);
                    break;
                case "Direcc0012":
                    q = (sortOrder == "desc") ? q.OrderByDescending(c => c.Direcc0012) : q.OrderBy(c => c.Direcc0012);
                    break;
                case "F1Cana02530012":
                    q = (sortOrder == "desc") ? q.OrderByDescending(c => c.F1Cana02530012) : q.OrderBy(c => c.F1Cana02530012);
                    break;
                default:
                    break;
            }
            totalRecords = q.Count();
            return q.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
        }


    }

私はすでにこれを追加しようとしました:

List<CanaClie0012> clients = new List<CanaClie0012>();

しかし、null 値を返します。親切に私を助けてください。私はここで迷子になりました。

4

1 に答える 1

0

あなたの権利@Gert Arnold。それは私の問題を解決しました..ありがとう。

  MMProdatEntities clients = new MMProdatEntities();

            public List<ClientSearchResult> Search(ClientSearchFilter filter, string sortColumn, string sortOrder, int pageSize, int pageIndex, out int totalRecords)
            {

                var q = from c in clients.CanaClie0012
                        join d in clients.Clientes0013 on c.Client00130012 equals d.Client0013 
                        select new ClientSearchResult
                        {
                            Client00130012 = c.Client00130012,
                            F1Pais00200012 = c.F1Pais00200012,
                            F1Cana02530012 = c.F1Cana02530012,
                            Direcc0012 = c.Direcc0012,
                        };

                if (!string.IsNullOrEmpty(filter.Client00130012))
                {
                    q = q.Where(c => c.Client00130012.ToLower().Contains(filter.Client00130012.ToLower()));
                }
                if (!string.IsNullOrEmpty(filter.F1Pais00200012))
                {
                    q = q.Where(c => c.F1Pais00200012.ToLower().Contains(filter.F1Pais00200012.ToLower()));
                }
                if (!string.IsNullOrEmpty(filter.F1Cana02530012))
                {
                    q = q.Where(c => c.F1Cana02530012.ToLower().Contains(filter.F1Cana02530012.ToLower()));
                }
                if (!string.IsNullOrEmpty(filter.Direcc0012))
                {
                    q = q.Where(c => c.Direcc0012.ToLower().Contains(filter.Direcc0012.ToLower()));
                }


                switch (sortColumn)
                {
                    case "Client00130012":
                        q = (sortOrder == "desc") ? q.OrderByDescending(c => c.Client00130012) : q.OrderBy(c => c.Client00130012);
                        break;
                    case "F1Pais00200012":
                        q = (sortOrder == "desc") ? q.OrderByDescending(c => c.F1Pais00200012) : q.OrderBy(c => c.F1Pais00200012);
                        break;
                    case "F1Cana02530012":
                        q = (sortOrder == "desc") ? q.OrderByDescending(c => c.F1Cana02530012) : q.OrderBy(c => c.F1Cana02530012);
                        break;
                    case "Direcc0012":
                        q = (sortOrder == "desc") ? q.OrderByDescending(c => c.Direcc0012) : q.OrderBy(c => c.Direcc0012);
                        break;
                    default:
                        q = (sortOrder == "desc") ? q.OrderByDescending(c => c.Client00130012) : q.OrderBy(c => c.Client00130012);
                        break;
                }
                totalRecords = q.Count();

                return q.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
            }
于 2013-06-09T16:40:17.263 に答える