2011-08-20 96 views
0

我正在使用C#和Linq編寫Web服務。我對此很新,在線上使用教程我已經能夠完成我需要的大部分工作。我有數據庫上的各種複雜操作的Web服務。找不到「SubmitChanges」的參考信息

其中我遇到問題是將記錄添加到我的表中。我跟着一些教程,這些教程都很簡單,但我有一個參考,我明顯缺少,找不到。我正在使用SQL Server(2008),並構建了一個WCF服務庫。代碼的開始是:

public const int RET_OK = 0; 
public const int RET_NOT_OK = -1; 

public const int RET_TICKET_NO_SERVER = -1; 

int retInt; 
xxxxEntities3 xxxxDB = new xxxxEntities3(); 

public int CreateTicket(ref string strServer) 
{   
    if ((strServer == null) || (strServer.Length == 0)) 
    { 
     return(RET_TICKET_NO_SERVER); 
    } 

    ticket tick = new ticket(); 
    tick.serveTime = DateTime.Now; 
    tick.server = strServer; 

    xxxxDB.tickets.AddObject(tick); 

    return (0); 
} 

我已經確定的引用添加到System.Data.Linq程序集,我已經驗證.edmx文件是正確的(我所有的「讀書」的網站服務工作很好)。

的問題是,當我嘗試插入變化(像這樣的東西):

xxxxDB.tickets.SubmitChanges(tick); 

我得到了的SubmitChanges沒有找到(它問我缺少一個參考)。我是嗎?我相信這很簡單,但我一定是太累了 - 我只是沒有看到它。

在此先感謝!

+2

其中'tickets'定義在哪裏?我沒看到它。 – 2011-08-20 18:24:05

+0

這只是當我包含SQL Server表時,由Visual Studio引入的模式中的表...... –

回答

3

是不是SubmitChanged定義在數據庫層的根目錄?這是我使用LinqToSql的經驗。舉例來說,則可以通過將表的基礎上操作的表的東西,但一次推送變化:

database.table.InsertOnSubmit(entity); 

database.SubmitChanges(); 

現在,它看起來像您使用的是稍微不同的LinqToSomething機制,我不完全熟悉 - 但許多原則毫無疑問是分享的。

正如@Henk和@Kirk提請注意,有一對夫婦的事情要考慮這裏:

  • 隨着EF,呼叫顯然應該是上下文本身,建議
  • 隨着EF,打電話是SaveChanges而不是SubmitChanges
+0

正如@Henk所暗示的,OP似乎正在使用EF。因此,該方法將被命名爲「SaveChanges」。但是,您也應該正確地調用數據上下文('database')而不是表。 –

+0

@Kirk Woll:是的,絕對不是這裏的一個拼盤答案,我會更新以表達我缺乏的智慧,從自己和Henk那裏收集。 –

+0

從來沒有想過。我試圖解決這個問題的代碼有問題。這是固定的,它插入很好。非常感謝你。 –