-------------------
utilizzando EF 6
-------------------
Ho 3 tavoli:
1) Utenti
public class Users
{
[Key,Required, MaxLength(50)]
public string UserName { get; set; }
[Required, MaxLength(128)]
public string Email { get; set; }
[Required, MaxLength(128)]
public string Password { get; set; }
}
2) Ruoli
public class Roles
{
[Key,Required, MaxLength(50)]
public string RoleName { get; set; }
[MaxLength(50)]
public string ApplicationName { get; set; }
}
3) UsersInRoles // Il mio problema.
public class UsersInRoles
{
[Key]
public int id { get; set; }
[ForeignKey("Users"), Required]
public string FKUserName { get; set; }
public virtual Users Users { get; set; }
[ForeignKey("Roles"), Required]
public string FKRoleName { get; set; }
public virtual Roles Roles { get; set; }
}
Ora la mia domanda è come inserire il record nella tabella UsersInRoles ???
Io uso il seguente codice ma non inserire alcun dato nella tabella!
anche non mostrare errori!
List<UsersInRoles> BUsersInRoles = new List<UsersInRoles>
{
new UsersInRoles { FKUserName="User1", FKRoleName="Role1"},
new UsersInRoles { FKUserName="User2", FKRoleName="Role2"}
};
foreach (UsersInRoles BIR in BUsersInRoles)
{
db.UsersInRoles.Add(BIR);
}
db.SaveChanges();
Grazie.
Aggiornamento : ho trovato un errore:
L'istruzione INSERT era in conflitto con il vincolo FOREIGN KEY "FK_dbo.UsersInRoles_dbo.Roles_FKRoleName". Il conflitto si è verificato nel database "AriyaRad", nella tabella "dbo.Roles", nella colonna "RoleName". La dichiarazione è stata chiusa.
Risolvo il mio problema!
Il motivo era la definizione di un singolo valore di stringa per la chiave esterna, ma provate a inserire un elenco di valori stringa!
db.UsersInRoles.Add(new UsersInRoles {FKUserName="User1",
FKRoleName="Role1", ApplicationName="PSCMS"});
db.SaveChanges();