Cercando di ottenere una query con un tipo di lavoro anonimo:Entity Framework e anonimi Tipi in F #
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 @>
E continuo a ricevere:
{ "Solo i costruttori senza parametri e inizializzatori sono supportati in LINQ to Entities. "}
Che avrebbe senso se mappassi direttamente i valori in un tipo, ma i tipi anonimi non dovrebbero lanciare s eccezione che penserei dato che si basano sulla funzionalità di inizializzazione dell'oggetto? Sfortunatamente tutto ciò che ho trovato su tipi anonimi sembra dire che questa è la sintassi corretta. Che o qualcosa di simile:
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 # non ha concetti di 'tipi anonimi' - questa è una caratteristica C#. Qui stai costruendo tuple semplici. – ildjarn
Hai provato a isolare l'errore su un costrutto più specifico (ad esempio, prova Seq.map (fun - I -> i.Id), Seq.map (divertimento i -> i.Id, i.Id)), ecc. .? – fmr