Я изучаю sql и RDBMS как почти новичка.Я пытаюсь понять концепцию использования PK и FK в контексте INSERT INTO [таблица], упомянутой ниже.Что меня смущает, например, когда у меня есть этот класс Email, который имеет FK из класса Person.Нужно ли упоминать / использовать его в предложении INSERT INTO [] () и, следовательно, в AddWithValue ()?Кроме того, нужно ли упоминать EmailID класса Email в INSERT INTO ()?
Я ценю, что кто-то дал мне объяснение, понимающее эти основы.
public void CreateEmailDB(ref Email email)
{
string CreateEmail = @"INSERT INTO [Email] (EmailAddress, PersonID)
OUTPUT INSERTED.EmailID
VALUES (@EmailId, @emailAddress, @PersonID)";
using (SqlCommand cmd = new SqlCommand(CreateEmail, OpenConnection))
{
cmd.Parameters.AddWithValue("@EmailAddress", email.EmailAddress);
cmd.Parameters.AddWithValue("@PersonID", email.PersonID);
email.PersonID = (int)cmd.ExecuteScalar(); //Returns the identity of the new tuple/record
}
}