• 借助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中第一个类(即数据库)生成的数据库名类,见下图。

    手动运行:

    运行之后生成文件:

  • 相关阅读:
    C++字符串函数之append()、insert()
    492. Construct the Rectangle(LeetCode)
    桶排序
    104. Maximum Depth of Binary Tree (LeetCode)
    557. Reverse Words in a String III(LeetCode )
    基数排序(LSD)
    500. Keyboard Row
    输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
    myeclipse打断点进入后无法查看变量的值的解决方法
    可参考的js代码
  • 原文地址:https://www.cnblogs.com/jjseen/p/5266427.html
Copyright © 2020-2023  润新知