[英]Foreign key problem when saving data to SQL Server using Entity Framework
這是我的數據庫架構:
CREATE TABLE University
(
UniversityID int NOT NULL IDENTITY,
UniversityName nvarchar(100) NOT NULL,
PRIMARY KEY (UniversityID)
)
CREATE TABLE Enstitute
(
EnstituteID int NOT NULL IDENTITY,
UniversityID int NOT NULL,
EnstituteName nvarchar(100),
PRIMARY KEY (EnstituteID),
FOREIGN KEY (UniversityID) REFERENCES University(UniversityID)
)
部分實體框架代碼:
en.EnstituteName = enstituteBox.Text; //entitute name input
uni.UniversityName = universityBox.Text; //university name input
db.Enstitute.Add(en);
db.University.Add(uni);
db.SaveChanges();
我的問題是,當我添加用戶輸入的數據時,我寫了相同的大學名稱,但在數據庫中記錄了使用不同 UniversityID 保存的相同大學名稱。 1 個學院有 1 個大學,1 個大學有多個學院。 當我 select 一所大學時,如果之前選擇了大學,我想將相同的 UniversityID(外鍵)保存到 Enstitute 表,而不是新的外鍵 ID。 有人能幫我嗎?
據我了解,問題是您正在添加大學,即使已經存在。 您的 PK 指向 ID,因此名稱不是其中的一部分。 可能您需要指定雙 PK 或檢查大學名稱是否已經存在。
嘗試這個
var university = await db.University.FirstOrDefaultAsync(x =>x.UniversityName == uni.UniversityName);
if(university == null){
//your code
}
else
{
en.UniversityId = university.UniversityId;
db.Enstitude.Add(en);
}
await db.SaveChangesAsync();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.