我們得到了一個存儲新聞訂閱(ID,EmailAddress,MyNewsletter1等)的表格,當我們保存訂閱時,我們首先檢查是否已經爲該電子郵件地址設置了訂閱。如果有,我們更新該記錄,如果沒有我們插入一個新記錄。不知怎的,一個重複的電子郵件地址在那裏偷偷摸摸,我不知道如何。主鍵是ID,所以我們可以將其改爲EmailAddress,但我仍然好奇這是如何發生的。這可能是一個併發問題嗎?這是代碼:創建了重複記錄,但是爲什麼? (linq to sql)
public static void SaveSubscription(NewsletterSubscription subscription)
{
using (MyDataContext db = new MyDataContext())
{
// does this email already have subscriptions?
NewsletterSubscription result = db.NewsletterSubscriptions.SingleOrDefault(r => r.Email == subscription.Email);
if (result != null)
{
// update instead of creating new record
result.MyNewsletter1 = subscription.MyNewsletter1;
result.MyNewsletter2 = subscription.MyNewsletter2;
result.MyNewsletter3 = subscription.MyNewsletter3;
result.MyNewsletter4 = subscription.MyNewsletter4;
}
else
{
// create new subscription record
subscription.RegisterDate = DateTime.Now;
db.NewsletterSubscriptions.InsertOnSubmit(subscription);
}
db.SubmitChanges();
}
}
感謝,
Annelie
會做出這些改變,感謝您的幫助! – annelie 2011-02-25 14:15:36