zoukankan      html  css  js  c++  java
  • 借助linq2db使用Linq访问MySQL

    linq2db (@github)支持Linq访问多种数据库。使用它操作MySQL非常简单,但使用方式上有一些“新奇”,特记录一下。

    下载安装(@NuGet)以及使用教程(@For MySQL)。

    使用NuGet安装之后,在工程目录下会生成projectLinqToDB.Templates目录。该目录下列举出了各种数据库的使用办法,其中MySQL内容如下:

    <#@ template language="C#" debug="True" hostSpecific="True" #>
    <#@ output extension=".generated.cs" #>
    <#@ include file="$(ProjectDir)LinqToDB.TemplatesLinqToDB.MySql.Tools.ttinclude" #>
    <#@ include file="$(ProjectDir)LinqToDB.TemplatesPluralizationService.ttinclude" #>
    <#
    /*
    1. Copy this file to a folder where you would like to generate your data model,
    rename it, and delete .txt extension. For example:

      MyProject
        DataModels
          MyDatabase.tt

    2. Modify the connection settings below to connect to your database.

    3. Add connection string to the web/app.config file:

      <connectionStrings>
        <add name="MyDatabase" connectionString="Server=MyServer;Port=3306;Database=MyDatabase;Uid=root;Pwd=TestPassword;charset=utf8;" providerName="MySql.Data.MySqlClient" />
      </connectionStrings>

    4. To access your database use the following code:

      using (var db = new MyDatabaseDB())
      {
        var q =
            from c in db.Customers
              select c;

        foreach (var c in q)
        Console.WriteLine(c.ContactName);
      }

    5. See more at https://github.com/linq2db/t4models/blob/master/Templates/ReadMe.LinqToDB.md.
    */

      NamespaceName = "DataModels";

      LoadMySqlMetadata("MyServer", "MyDatabase", "root", "TestPassword");
      // LoadMySqlMetadata(string connectionString);

      GenerateModel();
    #>

    按照文件的说明,具体操作如下:

    1. 将此文件拷贝到数据访问命名空间下。比如Model
    2. 改名。改为SpData.tt,主要是后缀名。
    3. 修改连接串。主要是“LoadMySqlMetadata("MyServer", "MyDatabase", "root", "TestPassword");” 改为自己用的链接信息,分为是Mysql Server Ip,目标数据,用户名和密码。
    4. 将连接串模板修改后,添加到web.config或者app.config。例如web.config 加入到 <configuration>下即可。
    5. SpData.tt会SpDatabase.generated.cs。如果MySQL信息正确,则会看到生成的数据库、表格等“OR”类。
    6. 示例需要改动的地方:将命名空间改为实际的或自定义的命名空间;将new MyDatabaseDB()改为SpDatabase.generated.cs中第一个类(即数据库)生成的数据库名类,见下图。

    手动运行:

    运行之后生成文件:

  • 相关阅读:
    Xshell6提示“要继续使用此程序,您必须应用最新的更新或使用新版本”的解决办法
    设置UIImage的边框和圆角大小以及颜色
    CATransition使用
    [转]C/C++中extern关键字详解
    New ipad与ipad2有何不同
    使用Xcode收藏自己常用的代码模板
    objectivec 关于 self 的用法总结
    查找 EXC_BAD_ACCESS 问题根源的方法
    结构体的对齐方式
    添加three20模板的方法
  • 原文地址:https://www.cnblogs.com/jjseen/p/5266427.html
Copyright © 2011-2022 走看看