使用的SQLite文本数据库,作为示例。
测试和使用的例子
自动创建数据库:
- using NUnit.Framework;
- namespace Skight.Demo.NHRepository.Tests{[TestFixture]
- public class CreateDatabase{[Test]public void Run(){
- var provider = SessionProvider.Instance;provider.IsBuildScheme = true;provider.initilize();}
- }}
view raw gistfile1.cs This Gist brought to you by GitHub.
这里,只是用测试的形式,实现功能。如果运行这个测试,将自动生成数据库。并且,可以输显示数据库生成脚本。在产品环境下,我就是用这个脚本来做数据库安装的。
操作数据(模拟UI):
- using NHibernate;
- using NHibernate.Context;
- using NUnit.Framework;
- using Skight.Demo.Domain;
- using Skight.Demo.Domain.Examination;
- namespace Skight.Demo.NHRepository.Tests{[TestFixture]
- public class DataOperation{
- private Repository repository;
- private ISession session;private ITransaction transaction;
- [SetUp]public void SetUp(){
- //Dependecy Injectrepository=new RepositoryImpl();
- session = SessionProvider.Instance.CreateSession();
- transaction = session.BeginTransaction();
- CurrentSessionContext.Bind(session);
- }[TearDown]public void TearDown(){
- transaction.Commit();
- transaction.Dispose();
- transaction = null;
- session.Close();
- session.Dispose();
- }[Test]public void create_a_exam(){var exam = new Exam();
- exam.Code = "001";exam.Name = "计算机考试";
- repository.save(exam);
- }
- [Test]public void get_the_exam_by_id(){
- var exam = repository.get_by_id<Exam>(1);
- Assert.IsNotNull(exam);
- }
- [Test]public void delete_the_exam()
- {var exam = repository.get_by_id<Exam>(1);repository.delete(exam);
- }
- }}
view raw gistfile1.cs This Gist brought to you by GitHub.
同样,用测试的形式,模拟UI的数据的操作。
首先,运行Create_a_exam()插入一个考试对象。
然后,运行get_the_exam_by_id()获取刚插入的考试。
运行 delete_the_exam()删除考试。
完全代码下载 下载页面 直接下载
原文链接:http://www.cnblogs.com/Wonner/archive/2012/04/16/From_DDD_To_3Tier.html