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

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();          
           
       }
   }
}

程序运行结果如下:

时间: 2024-12-23 00:30:31

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

类型“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://www.myexception.cn/c-sharp/1406525.html

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

在Windows 8.1系统下运行带数据库功能的应用,报错并提示:"System.InvalidOperationException"类型的未经处理的异常在 System.Data.Linq.dll 中发生其他信息: 无法打开"Bible.sdf".没有安装提供程序"System.Data.SqlServerCe.3.5".1.没有安装Microsoft SQL Server Compact 3.5的先下载并安装:http://www.micro

Win7 64bit系统WinFrom下未能加载文件或程序集“System.Data.SQLite”的解决办法

在Win7 64bit系统下调试程序时出现如下错误: 未能加载文件或程序集”System.Data.SQLite”或它的某一个依赖项.试图加载格式不正确的程序. 事实上System.Data.SQLite.dll控件在默认情况下是32bit的,在64bit系统下得使用另一个控件. 可以到这里http://sourceforge.net/projects/sqlite-dotnet2/files/下载一个安装程序包,安装完后在D:\Program Files (x86)\SQLite.NET\bi

oracle expdp 无法导出SYS下特定TABLE

创建测试表: D:\app\product\11.1.0\db_1>sqlplus "/as sysdba" SQL*Plus: Release 11.1.0.7.0 - Production on 星期日 5月 18 17:12:06 2014 Copyright (c) 1982, 2008, Oracle. All rights reserved. 连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0

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

原文地址 http://blog.csdn.net/lubiaopan/article/details/5915774 当使用Combobox控件时,出现SelectedValue的值为“System.Data.DataRowView”的原因有两个:在Combobox的DataSource不为空的情况下,要么是没有为ValueMember赋值,要么是赋值赋错了,这两种情况下系统就会把SelectedValue的默认值输出来(注意红色部分,如果DataSource为空,那么SelectedValu

关于System.Data.Entity.Core.MetadataException错误

发布ASP.NET MVC到IIS后出现错误: 1 System.Data.Entity.Core.MetadataException: Schema specified is not valid. Errors: 2 SysModel.ssdl(2,2) : error 0152: No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient'. Ma

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

当使用Combobox控件时,出现SelectedValue的值为“System.Data.DataRowView”的原因有两个:在Combobox的DataSource不为空的情况下,要么是没有为ValueMember赋值,要么是赋值赋错了,这两种情况下系统就会把SelectedValue的默认值输出来(注意红色部分,如果DataSource为空,那么SelectedValue的值为null).但有时即使你对ValueMember赋了正确的值也会出现这个问题,这里有一个赋值时机选择的问题,请看

C# 封装 System.Data.SQLite

参考1: 关于如何使用System.Data.SQLite的入门: http://www.dreamincode.net/forums/topic/157830-using-sqlite-with-c%23/ 1 using System; 2 using System.Collections.Generic; 3 using System.Data; 4 using System.Data.SQLite; 5 using System.Globalization; 6 using System

System.Data.SqlClient.SqlError: 尚未备份数据库的日志尾部

SQL还原时出现下面的错误,System.Data.SqlClient.SqlError: 尚未备份数据库 "***" 的日志尾部.如果该日志包含您不希望丢失的工作,请使用 BACKUP LOG WITH NORECOVERY 备份该日志.请使用 RESTORE 语句的 WITH REPLACE 或 WITH STOPAT 子句来只覆盖该日志的内容. (Microsoft.SqlServer.Smo)原因分析:    这是因为在线还原的数据库在最后备份后又产生了新的日志,所以按照默认设