Question

En utilisant simplement ceci à titre d'exemple ...

Voici les colonnes de ma table UserProfile:
   ProfileID (Clé primaire)
   ID utilisateur (clé étrangère)
   Adresse
   Numéro de téléphone

maintenant, lorsque je souhaite ajouter un nouvel utilisateur à la base de données à l'aide de LINQ to Entities, voici ce que je fais:

UserProfile profileToAdd;
profileToAdd.ProfileID = 0;
profileToAdd.Address = "123 MyStreet";
profileToAdd.PhoneNumber = "123-4567";
/* How do I add in the UserID here? */

_myDB.AddToUserProfiles(profileToAdd);

Quelques questions ...

  1. Existe-t-il quelque chose de particulier à propos des clés étrangères que je devrais connaître, ou puis-je l'assigner de la même façon que je l'ai fait avec Address ou PhoneNumber?

  2. L'utilisateur est un GUID et j'ai besoin de le récupérer à partir de l'ID utilisateur de l'utilisateur actuel. Je n'arrive pas à accéder à la classe d'appartenance ou à la classe d'utilisateur (c'est une bibliothèque C #, donc je suppose qu'il a besoin d'une référence, mais mon projet fait déjà référence à ma bibliothèque, donc je ne peux pas faire référence à avoir une dépendance circulaire)

  3. Je ne comprends pas très bien comment traiter avec Guids. Lors de l'implémentation de getProfileByUserName (string userName) , voici mon problème ...

Tout d'abord, je ne peux pas récupérer l'ID utilisateur. Voici ce que j'ai essayé:

Guid currUser = (Guid)from user in _ myDB.aspnet_Users
                             where user.UserName == userName
                             select new { user.UserId };

Mais il est dit que je ne peux pas le convertir en Guid pour une raison quelconque.

Si vous pouviez donner un aperçu de l'une ou l'autre de ces questions, je l'apprécierais grandement!

Merci,
Matt

Était-ce utile?

La solution

Si la base de données contient les contraintes appropriées pour la relation de clé étrangère, il doit y avoir un membre dans votre classe UserProfile , qui pointe vers un objet Utilisateur . Le nom peut être un peu étrange, tel que UserProfileUser ou quelque chose comme ça.

Cependant, vous pouvez changer ce nom dans le diagramme. Il suffit de définir un pointeur sur l’objet entité utilisateur et le framework vous attribuera le bon identifiant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top