Discriminated Unions for Static Data
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 25/100
Rechercherichtung
Das Issue nennt keine Dateien oder Tests; beginne damit, das vorhandene Individuals-Feature und die davon abhängigen query/type-provider-Pfade zu lesen. Vergleiche diese Einstiegspunkte mit der hier gezeigten manuellen ContentTypeId-Projektion; fertig ist die Aufgabe, wenn discriminated-union foreign-key IDs direkt ohne dieses Mapping verwendet werden können.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Another question, but are there any plans for allowing discriminated unions to be used as the type for foreign key IDs to static data? I know entity framework supports this with enums but it would be handy to be able to use discriminated unions for obvious reasons:
type ContentTypeId =
| Book
| Magazine
| Newspaper
...
let printData item =
match item.ContentTypeId with
| Book -> printfn "Found a book with id: %d" item.Id
| Magazine -> printfn "Found a magazine with id: %d" item.Id
| Newspaper -> printfn "Found a newspaper with id: %d" item.Id
It's possible to do this now by mapping the ID when projecting results:
let getContentTypeId = function
| 1 -> Book
| 2 -> Magazine
| 3 -> Newpaper
...
query {
for item in ctx.Dbo.Media do
select
{ contentTypeId = getContentTypeId item.contentTypeId;
}
}
This can get tedious and is pretty brittle, and an auto-generated solution would be preferable if possible. The infrastructure for the Individuals feature would probably be reusable to accomplish this?
- Vorherrschende Sprache
- F#
- Sterne
- 627
- Forks
- 147
- Ø Merge
- 2 Std. 2 Min.
- Gemergte PRs (30 T.)
- 1
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus fsprojects/SQLProvider
-
enhancement
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
fsprojects/SQLProvider#872 · 2 Kommentare ·
-
Repo Assist? Offenenhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 10/100
fsprojects/SQLProvider#870 · 1 Kommentar ·
-
postgresql
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 58/100
fsprojects/SQLProvider#869 · 2 Kommentare ·
-
documentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 42/100
fsprojects/SQLProvider#868 · 2 Kommentare ·
-
sql server
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
fsprojects/SQLProvider#851 · 1 Kommentar ·
Alle Issues in fsprojects/SQLProvider
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
TencentCloud/Octop#1157 · 1 Kommentar ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
-
backend bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
nolte/kamerplanter#1802 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
drogonframework/drogon#2605 ·