使用LINQ to SQL添加记录的问题

时间:2010-01-01 19:28:48

标签: c# linq linq-to-sql

我尝试在我的WPF应用程序中使用LINQ to SQL向SQLServer db表添加记录,但总是会收到有关缺失指令的错误。通常intellisense会对这个问题给出一个暗示,但这次不是。这里我的代码包含所有指令:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Collections.ObjectModel;
...
...
 DateTime newdate = new DateTime(2010, 2, 1);
 TimeSpan newtime = new TimeSpan(12, 00, 00);    

        MyfirstdbDataContext context = new MyfirstdbDataContext();
        Meeting meeting = new Meeting();
        meeting.MeetID = "01.02.10_12:00";
        meeting.Date = newdate;
        meeting.Time = newtime;
        context.Meetings.Add(meeting); // Here I get the debugger error
        context.SubmitChanges();

我收到了这个错误:

System.Data.Linq.Table'不包含'Add'的定义,也没有扩展方法'Add'接受'System.Data.Linq.Table'类型的第一个参数可能是发现(您是否缺少使用指令或程序集引用?)

请问,我的代码有什么问题?

3 个答案:

答案 0 :(得分:8)

正确的语法是:

context.Meetings.InsertOnSubmit(meeting);

答案 1 :(得分:7)

您不应该收到调试器错误。您应该收到编译时错误,因为没有Table.Add方法。在LINQ to SQL最终确定之前发布的一些书籍/博客(特别是Scott Guthrie的LINQ to SQL tutorial)将使用此语法,但它被Table.InsertOnSubmit取代。用以下代码替换您的代码:

context.Meetings.InsertOnSubmit(meeting);

以下是Add重命名为InsertOnSubmit的公告:LINQ: "Add" renamed to "InsertOnSubmit"

答案 2 :(得分:0)

您需要使用语句添加System.Data.Linq。