익명 유형이 작동하는 쿼리를 얻으려고합니다.
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의 답변에 따르면 생성자와 필요한 속성이 적은 매개 변수를 사용하여 명시 적 형식으로 선언해야합니다.