如题所示,EF作为微软主推的ORM工具,最新版本已经是7,说明有很多人在使用它做项目。在使用过程中,可能会连接不同的数据库,本文介绍的是连接SqlServer,MySql和SQLite三种,并且可以互相切换。先看Config是如何配置的?如下所示

Warensoft
Unity3D通信库使用向导3-建立Warensoft Data Service

<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
  </configSections>
  <!--SQLServer数据库配置-->
  <!--<entityFramework>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>-->
  <!--MySql数据库配置-->
  <entityFramework>
    <providers>
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"/>
    </providers>
  </entityFramework>
  <!--SQLite数据库-->
  <!--<entityFramework>
    <providers>
      <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6, Version=1.0.98.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
    </providers>
  </entityFramework>-->
  <connectionStrings>
    <!--SQLServer数据库-->
    <add name="dbConnString1" connectionString="" providerName="System.Data.SqlClient" />
    <!--MySql数据库-->
    <add name="dbConnString2" connectionString="" providerName="MySql.Data.MySqlClient"/>
    <!--SQLite数据库,注:根目录-->
    <add name="dbConnString3" connectionString="" providerName="System.Data.Sqlite.EF6" />
  </connectionStrings>
</configuration>

(作者:warensoft,有问题请联系warensoft@163.com)

  

在Unity3D中直接访问SQL
SERVER一直都Unity3D软件开发人员头疼的问题,特别是在WebPlayer中,由于安全原因,数据库访问的ADO.NET类是被禁用的。实际上不仅仅是Unity3D的WebPlayer,包括Silverlight以及Flash在内的RIA应用都采用相同的安全策略。在Warensoft
Unity3D通信库中引入了一系列的Warensoft数据服务客户端访问组件,只需要简单配置,就可以Unity3D中轻松实现SQL
SERVER数据库访问(包括独立应用程序以及WebPlayer程序)。下面文字将说明Warensoft
Data Service的配置方法,在后面的章节中,我会向大家展示如何利用Warensoft
Unity3d 通信库中的组件来访问Warensoft Data Service。

  是不是觉得很简单?对,就是这样简单。注意:引用的DLL文件名称,建议从官网上下载。如下图所示

第一步:从http://wucl.codeplex.com上获取Warensoft.Unity.Communication的最新版本。该库中包括两个DLL文件,Warensoft.Unity.Communication.dll是Untiy3D的客户端DLL,另一个是Warensoft.DataService的服务器DLL文件。

ca88手机版 1

第二步:建立Warensoft
DataService,步骤如下:

ca88手机版 2

  1. 新建立一个网站,并添加Warensoft.DataService.dll以及Warensoft.Unity.Communication.dll的引用,如下图所示:

  配置好并引用相应的DLL后,还并不能实现数据库的切换,还有一个地方要修改,就是Map文件。如下图所示

![](https://images.cnblogs.com/cnblogs_com/warensoft/201204/201204252340258650.png)

 

ca88手机版 3

  1. 在网站中添加一个类型化数据集并将其命名为DSTest,如下图所示:

  如果数据库的名称相同,则可以不必修改。若数据库名称不相同,则需修改this.ToTable这行代码,将后面的这个参数置为空即可

![](https://images.cnblogs.com/cnblogs_com/warensoft/201204/20120425234026111.png)

  好了,通过上述的改动,即可实现EF同时连接多Db并可互相切换

  1. 在服务器资源管理中打开所要连接的数据库,并展开所有的表,如下图所示:
![](https://images.cnblogs.com/cnblogs_com/warensoft/201204/201204252340265128.png)
  1. 将所有的表都选中,然后将其拖放到类型化数据集DSTest的设计器中,如下图所示:
![](https://images.cnblogs.com/cnblogs_com/warensoft/201204/201204252340268192.png)
  1. 配置完类型化数据集中的表后,Web.config中会自动添加一个名为db_TestConnectionString
  1. 的连接字符串,如下图所示:

    ca88手机版 4

  2. 编译网站,以获取对DSTest的智能感知。

  1. 打开Default.aspx.cs,并修改其代码,如下所示:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

 

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

//注册Warensoft DataService服务

//第一个参数是指明所使用的连接字符名

//第二个参数是指明所使用的类型化数据集实例

this.RegisterDataService("db_TestConnectionString", new DSTest());

 

}

}

 至此,WarensoftDataService配置完毕。

 

相关文章