INSERT語句與 FOREIGN KEY約束衝突 「FK_JobList_aspnet_Membership」衝突。 衝突發生在數據庫 「C:\ JOBPOST \ APP_DATA \ ASPNETDB.MDF」, 表「dbo.aspnet_Membership」,列 'UserId'。聲明已被 終止。INSERT與Linq-to-SQL的外鍵異常,但不知道爲什麼?
我FK_JobList_aspnet_Membership設置是:
- 主表(
aspnet_membership
) - 外鍵表(
JobList
) - 使用列
UserId(uniqueidentifier)
兩個表,目前只設置2用戶ID
JobList
有其自動可索引的主鍵t JobId
。在插入和更新屬性不採取行動,刪除設置爲級聯
在dbml的,我也爲JobList
表
我不明白,爲什麼在發生異常時,因爲我用戶登錄後使用會員服務設置UpdateCheck=UpdateCheck.Never
。它應該沒有衝突。順便說一句,我相信沒有其他插入項目的重複功能。雖然拋出異常,但是新行數據已經用正確的userId成功插入。它每次插入項目時都會拋出這種異常。
protected void LinqDataSourceDetail_Inserting(object sender, LinqDataSourceInsertEventArgs e)
{
if (Page.IsValid == true)
{
JobPostDataContext db = new JobPostDataContext();
JobList newJob = new JobList();
newJob.JobTitle = ((TextBox)DetailsView1.FindControl("TB_JobTitle")).Text;
newJob.Summary = ((TextBox)DetailsView1.FindControl("TB_Summary")).Text;
newJob.Detail = ((TextBox)DetailsView1.FindControl("TB_Detail")).Text;
newJob.CompanyName = ((TextBox)DetailsView1.FindControl("TB_CompanyName")).Text;
newJob.CompanyEmail = ((TextBox)DetailsView1.FindControl("TB_CompanyEmail")).Text;
String date = ((TextBox)DetailsView1.FindControl("TB_PostDate")).Text;
newJob.PostDate = (DateTime)Convert.ToDateTime(date);
newJob.IsTop = false;
newJob.UserId = (Guid)Membership.GetUser(User.Identity.Name).ProviderUserKey;
db.JobLists.InsertOnSubmit(newJob);
db.SubmitChanges();
}
}
你確定它沒有插入NULL作爲FK嗎? – 2011-03-20 08:31:22
如果您發佈代碼,XML或數據樣本,請**在文本編輯器中突出顯示這些行,然後單擊編輯器工具欄上的「代碼樣本」按鈕(「{}」)以精確地格式化和語法突出顯示它! – 2011-03-20 08:38:02
如果用'InsertOnSubmit'在行上放置斷點並檢查'newJob'對象 - 是否將'UserId'設置爲有效的GUID?這個GUID確實存在於aspnet_membership表中嗎? – 2011-03-20 08:39:01