익명 유형이 작동하는 쿼리를 얻으려고합니다.
let temporaryBookModel =
  query <@ context.Books 
    |> Seq.filter (fun book -> book.Id = bookId)
    |> Seq.map(fun item -> (item.Id, item.ParentUser.Id, item.ParentUser.Alias, item.Tagline, item.Title, item.Visible, item.CreatedDate))
    |> Seq.head @>
그리고 나는 계속지고있다 :
{ "매개 변수없는 생성자와 초기화기만이 LINQ to Entities. "}
어떤 값을 타입에 직접 매핑해도 익명 형은 객체 이니셜 라이저 기능을 기반으로하기 때문에이 예외를 throw해서는 안된다. 불행히도 익명 유형에서 발견 한 내용은 이것이 올바른 구문이라고 말하는 것 같습니다. 이것 또는 이와 비슷한 :
let temporaryBookModel =
  query <@ context.Books 
    |> Seq.filter (fun book -> book.Id = bookId)
    |> Seq.map(fun item -> (("a", item.Id), ("b", item.ParentUser.Id), ("c", item.ParentUser.Alias), ("d", item.Tagline), ("e", item.Title, item.Visible), ("f", item.CreatedDate)))
    |> Seq.head @>
                    
                
                
                                    
F #은 익명 형식을 지원합니까?
내가 아는 한 - 그렇지 않습니다. 그러나 해결 방법에는 두 가지 방법이 있습니다.
type Book =
    { 
        Id: int;
        ParentId: int;
        ParentAlias: string;
        TagLine: string;
        Title: string;
        Visible: bool;
        CreatedDate: DateTime;
    }
사용 코드 줄은 다음과 같습니다.
...
|> Seq.map 
    (fun item -> 
        {
            Id = item.Id; 
            ParentId = item.ParentUser.Id;
            ParentAlias = item.ParentUser.Alias;
            TagLine = item.Tagline;
            Title = item.Title;
            Visible = item.Visible;
            CreatedDate = item.CreatedDate
        }) 
유사한 질문에서 더 많은 설명을 찾을 수 있습니다.이리
최신 정보:
나를위한 레코드 유형 사용법은 더 우아한 해결책입니다,그러나Entity Framework에서 작동하지 않는 것처럼 보입니다.F #-> 매개 변수가없는 생성자로 기록 하시겠습니까?.
따라서 Tomas Petricek의 답변에 따르면 생성자와 필요한 속성이 적은 매개 변수를 사용하여 명시 적 형식으로 선언해야합니다.