当前位置:Gxlcms > 数据库问题 > LINQ to SQL活学活用(1):这要打破旧观念

LINQ to SQL活学活用(1):这要打破旧观念

时间:2021-07-01 10:21:17 帮助过:2人阅读

ConnectionString { get { if (ConfigurationManager.ConnectionStrings["conn"] == null || String.IsNullOrEmpty(ConfigurationManager.ConnectionStrings["conn"].ConnectionString) == true) { throw new InvalidOperationException("默认的连接字符串不存在或者为空"); } return ConfigurationManager.ConnectionStrings["conn"].ConnectionString; } } private DataAccessEntitiesDataContext m_dataContext; public DataAccessEntitiesDataContext DataContext { get { if (m_dataContext == null) { m_dataContext = new DataAccessEntitiesDataContext(ConnectionString); m_dataContext.Log = Console.Out; } return m_dataContext; } }

第二步:创建数据库

在测试之前,打开临时连接用于创建数据库,使用DataContext提供了DatabaseExists()、DeleteDatabase()、CreateDatabase()方法,先使用DatabaseExists()验证数据库是否存在,如果存在使用DeleteDatabase()方法删除,使用CreateDatabase()方法创建一个数据库架构,及时释放这个连接。

[TestFixtureSetUp]
public void Init()
{
    DataAccessEntitiesDataContext context = new DataAccessEntitiesDataContext(ConnectionString);
    context.Log = Console.Out;
    if (context.DatabaseExists() == true)
    {
        context.DeleteDatabase();
    }
    context.CreateDatabase();
    context.Connection.Close();
    context.Dispose();
    context = null;
}

第三步:关闭所有连接

在测试结束关闭所有的连接,这一步非常必要哦。

[TestFixtureTearDown]
public void Tear()
{
    DataContext.Connection.Close();
}

第四步:设置连接字符串

新建一App.config文件,设置连接字符串:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="conn" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=LINQ;Integrated Security=True"/>
  </connectionStrings>
</configuration>

2.测试类

我们新建一个测试类用于测试数据访问对象,这里简单测试创建一个Customer对象,新建CustomerFixture.cs类继承UnitTestBase

编写创建Customer对象方法如下,创建一个Customer对象,调用InsertOnSubmit()方法插入,调用DataContext.SubmitChanges()方法提交数据库。

[Test]
public void CreateCustomerTest()
{
    Customer customer = new Customer() { FirstName = "YJing", LastName = "Lee" };
    Assert.AreEqual(0, customer.CustomerId, "测试前CustomerId为0");
    DataContext.Customer.InsertOnSubmit(customer);
    DataContext.SubmitChanges();
    Assert.AreNotEqual(0, customer.CustomerId, "调用SubmitChanges()方法后CustomerId不为0");
}

测试成功,看看输出结果:

技术分享

OH!非常酷!首先创建了数据库架构,然后插入了一条数据。再次测试一下这个方法将是什么结果呢?这个问题就留给大家了。

结语

看到了吗?这就是全新的方式来完成非常酷的工作!从面向对象入手,利用LINQ to SQL生成其关系型数据库,一切就是这么容易!这篇仅仅在数据访问层上新建一数据访问对象,在测试中调用DataContext提供的方法完成数据操作!下篇更精彩!

版权声明:本文为博主http://www.zuiniusn.com原创文章,未经博主允许不得转载。

LINQ to SQL活学活用(1):这要打破旧观念

标签:

人气教程排行