문제

나는 Subsonic 3/LINQ를 처음 접했고, 내가 명백한 것을 놓친 것인지 모르겠지만, 나는 프로젝션 문제에 도달했다고 생각합니다. 익명 유형을 사용할 때만 가장 기본적인 쿼리를 수행하고 적절한 결과를 되 찾으려고합니다. 익명 유형을 일반 클래스 유형으로 바꾸는 순간 모든 속성을 NULL/ZERO로 설정합니다. DAL 클래스 라이브러리를 제작하고 있으므로 불행히도 익명 유형은 옵션이 아닙니다.

단편

using System;
using System.Linq;
using Fruits.Data;

namespace FruitTest {

    class Program {
        static void Main(string[] args) {

            var db = new FruitsDB();

            var fruits = from f in db.Fruits
                         select new FruitView {
                             MyFruitID = f.FruitID,
                             MyFruitName = f.FruitName,
                         };

            foreach (var f in fruits) {
                Console.WriteLine(f.MyFruitID + "\t" + f.MyFruitName);
            }

        }
    }

    public class FruitView {
        public int MyFruitID { get; set; }
        public string MyFruitName { get; set; }
    }

}

그래서 이것은 작동하지 않습니다 (모든 Nulls/Zeros를 반환)

var fruits = from f in db.Fruits
             select new FruitView {
                 MyFruitID = f.FruitID,
                 MyFruitName = f.FruitName,
             };

이것은 예상대로 작동합니다

var fruits = from f in db.Fruits
             select new {
                 MyFruitID = f.FruitID,
                 MyFruitName = f.FruitName,
             };

내 문제는 다소 비슷합니다 이것 그리고 이것, 나는 단지 내가 합류하지도 않는다. 간단한 선택 만하면됩니다.

모든 단서는 대단히 감사 할 것입니다.

올바른 솔루션이 없습니다

다른 팁

이것에 대한 진정한 대답은 없습니다. 나는 이것을 더 자주 만난 적이 없다. 과제 순서를 읽기 도움의 순서와 동일하게 유지합니다. 즉. 디버그 시간에서 QueryText가 표시되고 열이 DB에서 읽는 순서를 표시하는 경우. 그런 다음 과제를 QueryText에서 SQL Select 문의 순서와 동일하게 유지하십시오. 문제를 10 번 중 9 번으로 해결합니다.

대신 시도해보십시오.

IList<FruitView> fruits = (
         from f in db.Fruits
             select new FruitView {
                 MyFruitID = f.FruitID,
                 MyFruitName = f.FruitName
             }).ToList();

또는

IQueryable<FruitView> fruits = 
         from f in db.Fruits
             select new FruitView {
                 MyFruitID = f.FruitID,
                 MyFruitName = f.FruitName
             };

..그리고 foreach 이전과.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top