歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 技術備忘錄(Linux Mono Linq ASP.NET)

技術備忘錄(Linux Mono Linq ASP.NET)

日期:2017/2/28 16:13:28   编辑:Linux教程

環境: openSUSE linux Mono2.4 MonoDevelop2.0 DBLinq2007 0.18 Navicat lite 8.2.16

1)關於mysql存取中文字符:創建表時可能存放中文的字段的Character set應設置為:utf8 (UTF-8 Unicode)或 為中文兼容的字符集:
big5 | Big5 Traditional Chinese
gb2312 | GB2312 Simplified Chinese
gbk | GBK Simplified Chinese

2)關於DBLinq2007 0.18:

DBLinq2007其文件build\DbMetal.exe用於生成定義強類的數據集的cs文件.

其參數如下:

/provider:<provider> 指定數據提供者. 可能是Ingres, MySql,
  Oracle, OracleODP, PostgreSql 或 Sqlite.

/server:<name> 數據庫服務器的地址或其機器名.

/user:<name> 登錄數據庫的用戶名.

/password:<password> 登錄數據庫的口令.

/database:<database>    數據庫名稱

/namespace:<namespace>  指定輸出強類數據集的命令空間

/sprocs   提取存儲過程.

/code:<file>  輸出c#源代碼. 不能同 /dbml 選項一起使用.

前提mysql server服務器(localhost)存在一個test數據庫,test存在User表及Deaprtment表.(用戶名mysql口令1234)

mono DbMetal.exe /provider:MySql /server:localhost /user:mysql /password:1234 /database:test /namespace:mysqllinq /sprocs /code:testdb.cs

查看命令運行結果有沒有錯誤產生,可據提示排錯.如果沒有錯誤.則會在當前目錄產生一個名為testdb.cs的文件.

生成的cs文件含有如下命名空間引用;

using DbLinq.Linq;
using DbLinq.Linq.Mapping;

請刪除using DbLinq.Linq;並把using DbLinq.Linq.Mapping;改為using DbLinq.Data.Linq.Mapping;

保存後並把生成的cs文件添加項目中。

在MonoDevelop2.0中使用DBLinq 訪問mysql數據庫需要引用如下程序集:

System.Core.dll

DbLinq.dll

System.Data.Linq.dll

DbLinq.MySql.dll

MySql.Data.dll

System.Data.dll

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using DbLinq.MySql;
using mysqllinq;
using System.Data;
using System.Linq;
using DbLinq.Factory;
using DbLinq.Logging;
using MySql.Data.MySqlClient;

namespace webapp0
{

public partial class Default : System.Web.UI.Page
{
private static mysqllinq.Test testdb;
protected void Page_Load(object sender,EventArgs args)
{

if(testdb==null)
{
button1.Text = "開始實例化:testdb";
testdb=new mysqllinq.Test(new MySqlConnection( "server=localhost;user id=mysql; password=maling; database=test"));
}
else
{
button1.Text = "已實例化:testdb";
}
}
public virtual void button1Clicked(object sender, EventArgs e)
{

var user=testdb.User.Single(u=>u.UserID=="yanxiang");
button1.Text=user.UserName;

}
}
}

Copyright © Linux教程網 All Rights Reserved