Je suis nouveau à la programmation et F # est ma première langue.
Je veux charger des données dans une database SQL Server en utilisant le code F #. Voici la table censée stocker mes données:
CREATE TABLE [dbo].[Scores]( [EventName] [nvarchar](100) NOT NULL, [Winner] [nvarchar](50) NOT NULL, [Loser] [nvarchar](50) NOT NULL, [Score1] [nvarchar](10) NOT NULL, [Score2] [nvarchar](10) NOT NULL, [Score3] [nvarchar](10) NOT NULL ) ON [PRIMARY]
Score1
, Score1
et Score3
sont censés contenir les scores des juges, qui peuvent être indisponibles parfois.
Voici mon code F # pour charger datatables:
new dbSchema.ServiceTypes.Fights(EventName = fightSummary.event, Winner = fightSummary.winner.Value, Loser = fightSummary.loser.Value, Score1 = if judgesScoresExist then fightSummary.judgesScores.Value.[0] else "None", Score2 = if judgesScoresExist then fightSummary.judgesScores.Value.[1] else "None", Score3 = if judgesScoresExist then fightSummary.judgesScores.Value.[2] else "None")
Lorsque j'essaie d'exécuter le code F # ci-dessus, le message d'erreur suivant s'affiche:
Cette expression était censée avoir une
ssortingng
mais a ici le type 'a *' b
Apparemment, le compilateur interprète la partie
"None", Score2 = ...
en tant que tuple.
J'ai essayé de chercher en ligne une solution, mais je n'ai pas encore trouvé de solution.
Quels changements dois-je faire pour pouvoir charger mes données dans SQL Server?
Mettez les expressions if then else
entre parenthèses:
let v = new Fights(EventName = fightSummary.event, Winner = fightSummary.winner.Value, Loser = fightSummary.loser.Value, Score1 = (if judgesScoresExist then fightSummary.judgesScores.Value.[0] else "None"), ...) // etc.