您的位置:首页 > 运维架构 > 网站架构

LINQ下使用三层架构的探索(三)建立一个LTS层,并在表示层中插入数据

2008-04-03 08:04 330 查看
上一章讲了在表示层中查询数据的方法,现在我们要说说插入数据的操作。不过大家注意,我们现在仅仅用了二层的架构,目的是让大家能够直观的看到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语句或者改变了对象化的数据,都并不是真正地直接操纵数据库。相反的,我们全部是在对对象进行操作,更加有利并且容易地去定制我们所需要的业务规则。

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

祝,编程愉快!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐