编程开发 > MSSQL > 文章内容

LINQ下使用三层架构的探索(三)插入数据

2011-10-10编辑:mal
   上一章讲了在表示层中查询数据的方法,现在我们要说说插入数据的操作。不过大家注意,我们现在仅仅用了二层的架构,目的是让大家能够直观的看到LINQ的工作原理,在接下来的章节里,我们将会把这些方法都写入中间层去。按部就班的做

  1在上一章的基础上,我们添加一个新的WEB窗体。

  2添加一个BUTTON按钮,双击它。

  3 在事件中添加如下代码:

以下是引用片段:
NorthwindDataContext db = new NorthwindDataContext();
  Product nproduct = new Product();
  nproduct.ProductName = "Sunli'Tea"
  nproduct.SupplierID = 1
  nproduct.CategoryID = 1
  nproduct.QuantityPerUnit = "cup"
  nproduct.UnitPrice = 10m;
  nproduct.UnitsInStock = 1
  nproduct.UnitsOnOrder = 1
  nproduct.ReorderLevel = 1
  nproduct.Discontinued = false
  db.Products.InsertOnSubmit(nproduct);
  db.SubmitChanges();
  4简单地解释一下代码:

  1) 我们创建了一个DataContext实例db

  2) 创建了一个Product的实例nproduct(映射到Product表的一行)

  3) 将nproduct的属性依次赋值

  4) 确认一个对db.Products的插入操作,插入记录为nproduct

  5) 通过SubmitChanges()方法将对象中改变的数据存入数据库

  5运行该页面,单击按钮,然后转到Default1.aspx去查看刚才插入的数据。它是如何工作的?

  和前一个练习一样,我们在表示层中使用了操作对象的方法,不过并没有使用到LINQ查询。我们所做的是,创建一个Product对象实例,通过改变对象属性,创建了一条新记录,该记录保存在内存中,并且添加到内存中的表中。再通过SubmintChange()方法将内存中改变了的表数据插入数据库中。如果不使用该方法,数据库实际并不会被改变,不过我们在db实例中却可以找到新增的数据。小结:到现在为止,我们一共编写了2个方法(如果你尝试了上一章末尾的两个方法的话一共是4个),这些方法都是在表示层中。但是他们并不是实际的数据库操作语句,有的甚至都不是LINQ的语句。这是因为我们的操作都是在对对象进行的,尤其是在插入数据的时候,我们发现对于这些对象化的数据的操作,在没有确认改变之前,他们都仅仅是在内存中有变化。

  正因如此,我们的新的三层架构即将诞生并且与以前的观点并没有冲突,即使我在业务逻辑层中使用了LINQ语句或者改变了对象化的数据,都并不是真正地直接操纵数据库。相反的,我们全部是在对对象进行操作,更加有利并且容易地去定制我们所需要的业务规则。

  之后的章节中,我们即将把所有的操作方法放入这个新的业务逻辑层——我称它为逻辑访问层。相信这样的分层会使得网站的结构更加地清晰。祝,编程愉快!

数据库置疑?几步搞定SQL数据库修复

热点推荐

登录注册
触屏版电脑版网站地图