Table<TEntity>表示表格记录,它是一个泛型集合类,它的元素就是表格实体对象。它提供一组方法,对元素进行添加删除操作,并可以通过DataContext将这些操作保存到数据库。

表还是前面的那张表,在项目中添加了一个LINQ to SQL类。重点是InsertOnSubmit、DeleteOnSubmit等方法。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LINQ_to_SQL_Table
{
   /// <summary>
   /// 操作单一表格的Table<TEntity>类
   /// </summary>
   class Program
   {
       static void Main(string[] args)
       {
           //1.a.Attach附加实体
           DataClasses1DataContext dc1 = new DataClasses1DataContext();
           tb_GuestInfo guset = new tb_GuestInfo() { Id=1, Name = "DebugLZQ", Age = 35, Tel = "138****8888" };

dc1.tb_GuestInfo.Attach(guset);//这样的Attach仅仅附加实体,数据库没有更新
           dc1.SubmitChanges();
           //显示附加成功
           foreach (var g in dc1.tb_GuestInfo)
           {
               Console.WriteLine("{0} {1} {2} {3}", g.Id, g.Name, g.Age, g.Tel);
           }
           Console.WriteLine("---------");
           //显示数据库没有更新
           DataClasses1DataContext dc2 = new DataClasses1DataContext();
           foreach (var g in dc2.tb_GuestInfo)
           {
               Console.WriteLine("{0} {1} {2} {3}", g.Id, g.Name, g.Age, g.Tel);
           }
           Console.WriteLine("------------------------");
           Console.ReadKey();

//2.InsertOnSubmit
           dc2.tb_GuestInfo.InsertOnSubmit(guset);
           dc2.SubmitChanges();

foreach (var g in dc2.tb_GuestInfo)
           {
               Console.WriteLine("{0} {1} {2} {3}", g.Id, g.Name, g.Age, g.Tel);
           }
           Console.WriteLine("------------------------");
           Console.ReadKey();
           //2b.InsertAllOnSubmit 插入集合
           List<tb_GuestInfo> lst = new List<tb_GuestInfo>()
           {
               new tb_GuestInfo(){ Name="AA", Age=25,Tel="133****3333"},
               new tb_GuestInfo(){ Name="BB", Age=25,Tel="135****5555"}
           };
           dc2.tb_GuestInfo.InsertAllOnSubmit(lst);
           dc2.SubmitChanges();

foreach (var g in dc2.tb_GuestInfo)
           {
               Console.WriteLine("{0} {1} {2} {3}", g.Id, g.Name, g.Age, g.Tel);
           }
           Console.WriteLine("------------------------");
           Console.ReadKey();
           //
           //3.DeleteOnSubmit
           tb_GuestInfo entity = (from g in dc2.tb_GuestInfo
                                  where g.Name == "AA"
                                  select g).Single();
           dc2.tb_GuestInfo.DeleteOnSubmit(entity);//
           dc2.SubmitChanges();

foreach (var g in dc2.tb_GuestInfo)
           {
               Console.WriteLine("{0} {1} {2} {3}", g.Id, g.Name, g.Age, g.Tel);
           }
           Console.WriteLine("------------------------");
           Console.ReadKey();
           //3b.DeleteAllOnSubmit
           IEnumerable<tb_GuestInfo> entitys = from g in dc2.tb_GuestInfo
                                               where g.Name == "AA" || g.Name == "BB"
                                               select g;
           dc2.tb_GuestInfo.DeleteAllOnSubmit(entitys);
           dc2.SubmitChanges();

foreach (var g in dc2.tb_GuestInfo)
           {
               Console.WriteLine("{0} {1} {2} {3}", g.Id, g.Name, g.Age, g.Tel);
           }
           Console.WriteLine("------------------------");
           Console.ReadKey();          
           
       }
   }
}

程序运行结果如下:

C#→关于System.Data.Linq下的Table<TEntity> 泛型类 的问题的更多相关文章

  1. 类型“System.Data.Linq.DataContext”在未被引用的程序集中定义。必须添加对程序集“System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”的引用。

    解决方法:添加System.Data.Linq.dll引用 http://www.cnblogs.com/m84641693/archive/2010/07/26/1785100.html http: ...

  2. ASP.NET#命名空间"System.Data"中不存在类型或命名空间名称"Linq"(是否缺少程序集引用?)

    添加完.dbml(LINQ to SQL类文件)文件后,双击.designer.cs源文件时,发现编译器提示:命名空间"System.Data"中不存在类型或命名空间名称" ...

  3. 没有安装提供程序“System.Data.SqlServerCe.3.5”的解决方法

    在Windows 8.1系统下运行带数据库功能的应用,报错并提示:“System.InvalidOperationException”类型的未经处理的异常在 System.Data.Linq.dll ...

  4. Dynamic Data linq to SQL Web Application

    微软提供了一个数据驱动网站模板,可以自动生成CRUD页面,使用过程中碰到些问题 1.首先是如何应用,只需要创建个context并且在Global.asax里面加入下面这一句就可以了 DefaultMo ...

  5. .net core linux环境下 System.Data.SqlClient.SqlException: Connection Timeout Expired.

    最近遇到了一个很奇葩的问题,我编写了一个.net core程序读取多个数据库数据源,进行数据同步处理.该程序在windows环境下运行完全正常,但在linux环境下运行报异常,提示 System.Da ...

  6. 微軟将从 .NET 4 以后的版本弃用 System.Data.OracleClient 以及Oracle 的各种连接方法

    这是微软官方 ADO.NET Team Blog 去年就公布的消息: http://blogs.msdn.com/adonet/archive/2009/06/15/system-data-oracl ...

  7. (转)Combobox出现System.Data.DataRowView的原因,以及指定ValueMember的时机问题

    原文地址 http://blog.csdn.net/lubiaopan/article/details/5915774 当使用Combobox控件时,出现SelectedValue的值为“System ...

  8. C# 封装 System.Data.SQLite

    参考1: 关于如何使用System.Data.SQLite的入门: http://www.dreamincode.net/forums/topic/157830-using-sqlite-with-c ...

  9. SQLite 之 C#版 System.Data.SQLite 使用

    简介 SQLite简介 SQLite,是一款轻型的关系型数据库.它的设计目标是嵌入式. 它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 C++.C ...

随机推荐

  1. 使用 VisualVM 进行性能分析及调优

    VisualVM 是一款免费的性能分析工具.它通过 jvmstat.JMX.SA(Serviceability Agent)以及 Attach API 等多种方式从程序运行时获得实时数据,从而进行动态 ...

  2. Note_Master-Detail Application(iOS template)_01_YJYAppDelegate.h

    //YJYAppDelegate.h #import <UIKit/UIKit.h> @interface YJYAppDelegate : UIResponder <UIAppli ...

  3. hdu 2041

    ps:这道题之前一直没思路,有大神提醒我用递推,但当时没搞清...今天做了那个小蜜蜂..才懂得用递推做这道题.. 代码: #include "stdio.h"long long d ...

  4. hd oj2025

    Ps:尼玛这道题简直坑爹...就是直接比较ascii码....无脑题,想复杂了... 代码:#include "stdio.h"#include "string.h&qu ...

  5. "This connection is untrusted" - Firefox error message

    Error Messages I am receiving the following error message in Firefox: After selecting Cancel to clos ...

  6. 【LeetCode OJ】Populating Next Right Pointers in Each Node II

    Problem Link: http://oj.leetcode.com/problems/populating-next-right-pointers-in-each-node-ii/ OK... ...

  7. 微信Accesstoken通过xml文件方式保存

    //获取accessToken public static AccessToken GetAccessToken() { string AppID = JobBase.GetConfParamValu ...

  8. asp.net mvc3.0第一个程序helloworld开发图解

    步骤一:新建asp.net mvc3.0项目 (选择Razor模板) 步骤二:创建控制器 步骤三:控制器源码内右键创建对应视图 步骤四:控制器内添加代码 步骤五:视图页面输出内容 步骤六:F5调试

  9. c/c++ main函数执行之前/后

    转载自:http://bbs.csdn.net/topics/300103318#r_78088969 main函数之前--真正的函数执行入口或开始 一种解释: 实际上,在可执行文件被加载之后,控制权 ...

  10. iptables导致数据包过多时连接失败

    前几天做服务器压力测试,本地10个线程不停的去向服务器建立连接,然后请求数据,然后连接再关闭,程序每运行几万次之后就会发现客户端程序没办法connect服务器,connect超时. 一开始怀疑是自己服 ...