您的位置:首页 > 其它

NHibernate从入门到精通系列(3)——第一个NHibernate应用程序

2015-09-21 14:59 435 查看
内容摘要

    准备工作

    开发流程

    程序开发

  一、准备工作

    1.1开发环境

      开发工具:VS2008以上,我使用的是VS2010

      数据库:任意关系型数据库,我使用的是SQL Server 2005 Express

    1.2测试环境

      nunit 2.5.7

  二、开发流程

  NHibernate程序的开发流程是:

    (1).编写领域类与映射文件

    (2).使用NHibernate工具生成对应的数据库结构

    (3).编写DAO(数据库访问对象)

    (4).使用NUnit测试DAO(数据访问对象)的增、删、该、查方法

  三、程序开发

  3.1 建立Domain项目,如图3.1.1所示。

  

[TestFixture]
public class ProductDaoTest
{
private IProductDao productDao;

[SetUp]
public void Init()
{
productDao = new ProductDao();
}

[Test]
public void SaveTest()
{
var product = new Domain.Product
{
ID = Guid.NewGuid(),
BuyPrice = 10M,
Code = "ABC123",
Name = "电脑",
QuantityPerUnit = "20x1",
SellPrice = 11M,
Unit = "台"
};

var obj = this.productDao.Save(product);

Assert.NotNull(obj);
}

[Test]
public void UpdateTest()
{
var product = this.productDao.LoadAll().FirstOrDefault();
Assert.NotNull(product);

product.SellPrice = 12M;

Assert.AreEqual(12M, product.SellPrice);
}

[Test]
public void DeleteTest()
{
var product = this.productDao.LoadAll().FirstOrDefault();
Assert.NotNull(product);

var id = product.ID;
this.productDao.Delete(product);
Assert.Null(this.productDao.Get(id));
}

[Test]
public void GetTest()
{
var product = this.productDao.LoadAll().FirstOrDefault();
Assert.NotNull(product);

var id = product.ID;
Assert.NotNull(this.productDao.Get(id));
}

[Test]
public void LoadTest()
{
var product = this.productDao.LoadAll().FirstOrDefault();
Assert.NotNull(product);

var id = product.ID;
Assert.NotNull(this.productDao.Get(id));
}

[Test]
public void LoadAllTest()
{
var count = this.productDao.LoadAll().Count;
Assert.True(count > 0);
}
}


ProductDaoTest

  最后运行NUnit测试该项目。效果如图3.3.2所示。



  图3.3.2

  

  

  好了,一个NHibernate完整的项目就做完了。从中我们可以发现,此应用程序项目没有编写一条SQL语句,就能实现数据的增、删、该、查。

  这样一来,便简化了我们的项目开发。O(∩_∩)O~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: