2013-01-17 30 views
0

代碼:Entities db = new Entities()的SaveChanges()上的實體不更新記錄,沒有拋出異常,如下

AddToMailinglists_Details(obj)AddObject("Mailinglists_Details", obj) 澄清快捷方式:

Mailinglists_Details _addMail_Details = new Mailinglists_Details(); 
_addMail_Details.listname = mailingData[counter].listname; 
_addMail_Details.usage = mailingData[counter].usage; 
_addMail_Details.responsible = mailingData[counter].responsible; 

db.AddToMailinglists_Details(_addMail_Details); 
db.SaveChanges(); 

你可能從代碼看到自己:

[global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")] 
public void AddToMailinglists_Details(Mailinglists_Details mailinglists_Details) 
{ 
this.AddObject("Mailinglists_Details", mailinglists_Details); 
} 

現在奇怪的是,當創建一些虛擬記錄使用完全相同語法有效。與虛擬記錄唯一的區別是,實體是明確聲明的而不是在使用聲明中,是否會導致問題? (記住,使用相同的組件內的比較工作!)

編輯:爲進一步澄清,我訪問表是完全獨立的,在這裏你有關於如何生成虛擬數據的一些代碼:

Mailinglists_Details _addDetails_Mail = new Mailinglists_Details(); 
    _addDetails_Mail.listname = "[email protected]"; 
    _addDetails_Mail.usage = "Contact all apprentices @enterprise"; 
    _addDetails_Mail.responsible = "default responsible: some ppl"; 

    ent_mail.AddToMailinglists_Details(_addDetails_Mail); 
    ent_mail.SaveChanges(); 

我還試圖mailingData[counter].listname.ToString();

EDIT2:mailingData是List<customClass>,自定義類延伸4個屬性:LISTNAME(字符串),使用(字符串),負責(字符串),接收者(串[])

+0

請添加使用語句(它是否包含調用savechanges?) –

+0

我不知道你的意思,但我可以告訴你,SaveChanges()是一種方法實體,這應該是更新從實體更改數據庫 – Vogel612

回答

0

嘗試db.MalingLists.Add(_addMail_Details);而不是的調用 - 可能是您創建的方法存在問題。

+0

對不起,告訴你,但我使用相同的方法來生成虛擬記錄,它工作得很好。還有'db.MailingLists_Details.Add()'方法不存在... – Vogel612

0

Incase Mailinglists_Details依賴於另一個實體,您需要使用它的導航屬性來填充它:考慮到您有MailingList 1 - > * MailingListDetails關係。在這種情況下,你必須把MailingListDetails.MailingList = mailingListObject;

+0

事實並非如此,Mailinglists_Details是獨立的 – Vogel612

+1

我不明白爲什麼這不起作用,您能否提供完整的代碼部分? (包括上下文啓動) – HichemSeeSharp

+0

我拿掉了上下文啓動來聲明'Entities db = new Entities()',這使得另一段代碼再次工作。 – Vogel612

相關問題