Domanda

Usando questo come esempio ...

Ecco le colonne nella mia tabella UserProfile:
   ProfileID (chiave primaria)
   UserID (chiave esterna)
   indirizzo
   PhoneNumber

ora, quando voglio aggiungere un nuovo utente al database usando LINQ to Entities, ecco cosa sto facendo:

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

_myDB.AddToUserProfiles(profileToAdd);

Alcune domande ...

  1. Esiste qualcosa di speciale nel trattare con le chiavi esterne che devo conoscere, oppure posso assegnarlo esattamente come ho fatto con l'indirizzo o il numero di telefono?

  2. L'Identificativo è un Guid e devo recuperarlo dall'Identificativo dell'utente corrente. Non riesco ad accedere alla classe di appartenenza o alla classe utente (questa è una libreria C #, quindi immagino che abbia bisogno di un riferimento in qualche modo, ma il mio progetto sta già facendo riferimento alla mia libreria, quindi non posso fare riferimento o avere una dipendenza circolare)

  3. Non capisco bene come gestire le guide. Quando si implementa getProfileByUserName (string userName) , ecco il mio problema ...

prima di tutto non riesco a recuperare UserID, ecco cosa ho provato:

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

Ma dice che non posso inviarlo a un Guid per qualche motivo.

Se riesci a fornire informazioni su una di queste domande, lo apprezzerei molto!

Grazie,
Matt

È stato utile?

Soluzione

Se il database contiene i vincoli appropriati per la relazione di chiave esterna, dovrebbe esserci un membro nella classe UserProfile , che punta a un oggetto User . Il nome potrebbe essere un po 'strano, come UserProfileUser o qualcosa del genere.

Tuttavia, puoi cambiare questo nome nel diagramma. Basta impostare un puntatore sull'oggetto entità utente e il framework assegnerà l'id corretto per te.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top