首页 > 代码库 > LinQ to Sql

LinQ to Sql

java平台上,ORM这一块Hiberante是相当的.但是在谈到.NET平台.ORM框架就有些不一样了.Nhibernate,NbeatCastel,以及我要说的linQ to Sql

Tosql是微软自己的产品。现在用的或许很少了,但是如果做一个中小型的项目,开发和部署还是很好的,不必考虑第

三方库。但是Tosql毕竟是直接面对数据库的。这个操作我有些用不惯,这里就简单介绍了。

要想使用Linq to Sql,实现需要建立好数据库。

Step1 建立LINQ to SQL Classes文件

   在实体层中选择添加新项 LinQ to SQL,并命名。



Setp2建立数据库连接生产代码

       VS视图中打开是服务资源管理,添加connection连接。填写服务器名称与数据库名称。我这里是本地就用window

验证了



打开刚才创建的 LinQ toSql文件。将数据中的表托动态文件上



保存后ORM映射就完成了,这里没有XML文件,所以相对NH简单,但是也存在隐患。修改就难了。

Step3操作数据

这里我就以控制台操作了。 3个实例,分别对应到添加单条数据,删除集合,以及查询

添加

public   static  void Add()
		{
			//声明实体
			Commodity commidity = new Commodity
			{
				Code=Guid.NewGuid().ToString(),
				CommodityName="月饼",
				CommodityPrice=500,
				CommodityType="2"
			};
			Console.WriteLine("=----begin add commidity");
			using(DataClasses1DataContext bd= new DataClasses1DataContext())
			{
				bd.Log=Console.Out;//控制台输出
				bd.Commodity.InsertOnSubmit(commidity);//调用tosql的方法
				bd.SubmitChanges();////事务机制被封装到SubmitChanges方法内
				Console.WriteLine("----end add  commidity");
		}

新东西到没有什么


删除(集合)

public static void Delete()
		{
			Console.WriteLine("-----------begin delete all commidity");
			using (DataClasses1DataContext bd = new DataClasses1DataContext())
			{
				bd.Log = Console.Out;
				bd.Commodity.DeleteAllOnSubmit(bd.Commodity.Where(p => p.CommodityName == "月饼"));//删除为查询到的集合实体集,
				bd.SubmitChanges();
			}
			Console.WriteLine("------------end Delete commidity");

		}

我们看打印的sql语句是以and的形式连接的



查询

再看最重要的查询,说到查询,就得和LinQ to Object联系起来了,这里的查询如出一辙,写法也是相同的。

public static List<Commodity> select()
		{
			//务必先实例化数据集db
			DataClasses1DataContext db= new DataClasses1DataContext();
			//集合形式
			List<Commodity> commiditys = db.Commodity.ToList();
			//条件形式
			List<Commodity> commdityWhere=db.Commodity.Where(p => p.CommodityName == "水").ToList();
			//查询与选择
			var commodityWhereSel = db.Commodity.Distinct().Where(p =>p.CommodityName == "月饼").Select(a => a.CommodityPrice);
			//选择
			List<string> commidityName=db.Commodity.Select(p => p.CommodityName).ToList();
			return commdityWhere;
		}

操作与 To Object是一样的,细心的你是否发现 只不多这里不再是传递集合数据了呢,而是db.表名称。

 总结

以上是LinQ to Sql基本的操作,只在查询中添加了简单的条件限制,我认为是操作中常用的,当然了还有排序等。虽然本人并不善用to Sql,还是希望对入门的同学们有所启发。

 

 

LinQ to Sql