Insertion en base via un service Azure Mobile
Bonjour à tous,
Je suis en train de tester Windows Azure, et j'aimerais créer un utilisateur, avec un droit associé.
Code:
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:
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:
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 :
Citation:
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 !