Salut! Je suis en train d'écrire une classe POCO dans une bonne F # ... Mais quelque chose est faux ..F # - POCO classe
Le code C# que je veux "traduire" au bon F # est:
public class MyTest
{
[Key]
public int ID { get; set; }
public string Name { get; set; }
}
Le plus proche I peut venir au code ci-dessus en F # est quelque chose comme:
type Mytest() =
let mutable _id : int = 0;
let mutable _name : string = null;
[<KeyAttribute>]
member x.ID
with public get() : int = _id
and public set(value) = _id <- value
member x.Name
with public get() : string = _name
and public set value = _name <- value
Cependant lorsque je tente d'accéder aux propriétés de la version F #, il retourne juste une erreur de compilation en disant
« Loo kup sur un objet de type indéterminé sur la base des informations antérieures à ce point de programme. Une annotation de type peut être nécessaire avant ce point de programme pour contraindre le type de l'objet. Cela peut permettre à la recherche à résoudre. »
Le code des thats essayant d'obtenir la propriété est une partie de mon dépôt (j'utilise le code EF Première).
module Databasethings =
let GetEntries =
let ctx = new SevenContext()
let mydbset = ctx.Set<MyTest>()
let entries = mydbset.Select(fun item -> item.Name).ToList() // This line comes up with a compile error at "item.Name" (the compile error is written above)
entries
Qu'est-ce que l'enfer est passe?
Merci à l'avance!
Pour votre information, vous pouvez laisser le mot « attribut » hors de vos attributs en F #, comme vous pouvez en C#. Par exemple, '[]' –
Aussi FYI - votre F # 'la mise en forme de définition MyType' mais j'ai foiré quand vous copié et collé et ne compilera pas comme il est. –