2011-01-28 59 views
2

有沒有辦法創建一個linq類的實例,而不包含在下一個提交?Linq類的實例沒有連接到數據庫

這樣的:

Customer customer = new Customer(); 
Context.SubmitChanges(); // customer is not added. 

我得到一個錯誤回來說,一些值不能爲空,因爲在數據庫中的約束,即使我沒有字裏行間Context.Contacts.InsertOnSubmit(contact);。我認爲只要我沒有撥打InsertOnSubmit,我就可以使用由dbml生成的Customer類作爲存儲或其他任何東西......關於我可能做錯了什麼,或者我想在這裏打破規則的任何想法?

+2

您正在做的事情沒有問題(使用實體對象而不保存它)。你能發佈實際的錯誤信息嗎?你可以發佈更多的代碼嗎? – shaunmartin 2011-01-28 23:22:40

回答

3

我會懷疑你在某種分配中將該對象附加到了另一個對象上。這並不是很明顯,但實際上這會導致它被包含在提交中。

+0

這正是我提出的那個問題。 – Andreas 2011-02-21 20:51:55

0

你可以使用實體Customer,你在你的代碼想要的,但你有,如果你把它分配到使用customer或添加到datacontext你有另一個實體,然後叫SubmitChanges考慮,你會得到,只要這個錯誤因爲您的customer實體中存在空值,它不允許在實際的customer數據庫表中爲null