Bonjour à tous,

Je suis en train de tester Windows Azure, et j'aimerais créer un utilisateur, avec un droit associé.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class Utilisateur
{
     public int Id { get; set; }
 
     [DataMember(Name = "login")]
     public string Login { get; set; }
 
     [DataMember(Name = "droit")]
     public Droit Droits { get; set; }
 
     [DataMember(Name = "password")]
     public string Password { get; set; }
}
 
public class Droit
{
    public int Id { get; set; }
 
    [DataMember(Name = "label")]
    public string Label { get; set; }
 
    [DataMember(Name = "image")]
    public string Image { get; set; }
}
Du côté de Azure, j'ai deux tables créées : Utilisateur et Droit.

La création d'un droit fonctionne parfaitement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
IMobileServiceTable<Droit> droitTable = App.MobileService.GetTable<Droit>();
var items = await droitTable.Where(i => i.Label == label).ToListAsync();
if (items == null || !items.Any())
{
    var droit = new Droit
    {
        Label = label,
        Image = string.Empty
    };
await droitTable.InsertAsync(droit);
}
Cependant, lorsque je souhaite ajouter un utilisateur avec une association à un droit donné (de la façon suivante) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
IMobileServiceTable<Utilisateur> tableUser = App.MobileService.GetTable<Utilisateur>();
var users = await tableUser.Where(i => i.Login == "Bastien").ToListAsync();
if (users == null || !users.Any())
{
    var droit = await App.MobileService.GetTable<Droit>().Where(i => i.Label == "Administrateur").Take(1).ToListAsync();
    var user = new Utilisateur
    {
        Login = "Nom_utilisateur",
        Password = "Pass_utilisateur",
        Droits = droit.FirstOrDefault()
    };
    await tableUser.InsertAsync(user);
}
J'ai une erreur :
Cannot serialize member 'droit' of type 'portable_pome.Data.Droit' declared on type 'Utilisateur'.
Que cela signifit-il ? Qu'ai-je oublié pour faire fonctionner la jointure ?

Merci d'avance !