首页 新闻 会员 周边

为什么在Linq To Sql中只能使用InsertOnSubmit()而没有Add()方法

0
悬赏园豆:10 [待解决问题]

我在看一本书,里面提到使用Linq to sql新增一条记录是这样的。

ctx.tbGuestBooks.Add(model);
ctx.SubmitChanges();

 

但是,在自己的项目中(.Net Framework 4.0 )却没有这个Add方法,而只有InsertOnSubmit()方法,所以只能这样使用。

ctx.tbGuestBooks.InsertOnSubmit(model); 
ctx.SubmitChanges();

 

为什么在我的项目中没有Add这个方法呢?

dotnetgeek的主页 dotnetgeek | 菜鸟二级 | 园豆:482
提问于:2013-02-05 16:52
< >
分享
所有回答(2)
0

EF中是有的,linq to sql 没有过。

jerry-Tom | 园豆:4077 (老鸟四级) | 2013-02-05 16:56

EF的用法跟LinqToSql差不多。

支持(0) 反对(0) dotnetgeek | 园豆:482 (菜鸟二级) | 2013-02-05 17:01

我查了下,好似Add是早期Linq的方法,较新版本的Linq用InsertOnSubmit,求证实。

支持(0) 反对(0) dotnetgeek | 园豆:482 (菜鸟二级) | 2013-02-05 17:16
0
    /// <summary>
        /// 增删改
        /// </summary>
        /// <param name="model"></param>
        /// <param name="type">0:添加 ; 1:修改 ; 2:删除</param>
        /// <returns></returns>
        public static bool InsertOrUpdate(T_Object model, int type)
        {
            switch (type)
            {
                case 0:
                    Session = new DataContext();
                    model.F_UpdateTime = DateTime.Now;
                    model.F_CreateTime = DateTime.Now;
                    model.Version = 1;
                    model.F_Id = Guid.NewGuid();
                  Session.T_Object.InsertOnSubmit(model);
                    break;
                case 1:
                    break;
                case 2:
                    model = GetAll().First(x => x.F_AutoId == model.F_AutoId);
                    model.F_IsDel = 1;
                    break;
            }
            try
            {
                Session.SubmitChanges();
                return true;
            }
            catch
            {
                return false;
            }
        }        

貌似是这样的,我是这样处理增删改的,我不是物理删除,希望能帮到你...

沈融兴 | 园豆:404 (菜鸟二级) | 2013-02-06 09:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册