2014-03-26 43 views
0

我想在Visual Studio 2008(.NET 3.5)中使用實體框架。Visual Studio 2008中的實體框架缺失添加方法

我可以在添加新項找到它,它都應該做的(創建的類等)

但是當我嘗試添加一個新的實體到像數據庫:

​​

我根本找不到學生對象下的Add()方法!

這是因爲我沒有引用一些nedded dll嗎? 或實體框架不支持VS2008中的添加方法(.NET 3.5)

對我來說,這太奇怪了。我以前從未遇到過這種情況,不認爲應該發生。


更新1:

我還試圖用LINQ2SQL,但仍然沒有添加或ADDOBJECT/AddEntity方法。沒有任何像AddXXXX()方法。

發生了什麼事?

+1

'myModel'有什麼類型?你可以添加它的類定義來質疑嗎?也很高興知道類型的學生' –

+0

@SergeyBerezovskiy嗨SB,謝謝你的回覆。 myModel是繼承自System.Data.Objects.ObjectContext的類,學生是System.Data.Objects.ObjectQuery 的列表,最後,student從System.Data.Objects.DataClasses.EntityObject繼承。乾杯 – Franva

+0

正如Kasper建議的那樣,使用'myModel.AddToStudents(newStudent)'。我還建議你更新版本的EF你使用 –

回答

2

使用ObjectContext代替,並呼籲AddToStudentSet(newStudent).

myModel.AddTostudentSet(newStudent); 

您使用的是舊版本的實體框架。當時實體框架與System.Data捆綁在一起,並不是一個獨立的庫。該工具不是在DbSet/EntitySet上添加Add/AddObject方法,而是直接在ObjectContext上添加方法,並根據實體的名稱命名它們。

因此,一個實體,稱爲Student將導致調用方法EF的AddToStudentSet

新版本降到這種做法,而是直接產生於DbSet這些方法。

+0

沒有什麼像學生的AddXXX方法.........這就是爲什麼我說這很奇怪...... – Franva

+0

我更新了答案。 –

+0

酷!直接在數據上下文對象下找到該方法。 Hi Kasper,你能解釋一下爲什麼會發生?這對我沒有意義。是因爲老版本的ET嗎? – Franva