ハンドヘルドは、SqlSugar 4に基づいて可視化コードジェネレータを作成することを教えます(エンティティを生成し、SqlServerを例に、文末にソースコードを添付します).

7363 ワード

開発中にエンティティークラスの作成は避けられません.フィールドの少ないテーブルは手動で作成できますが、フィールドが多くても手動で作成すると時間がかかります.1枚のテーブルに100以上のフィールドがあれば、手書きは現実的ではありません.
この場合、動ソフトコードジェネレータ、各種ORMフレームワークに付属するコードジェネレータなど、いくつかのツールを使用して使用できます.
SqlSugar(ORMフレームワーク)に基づいて、SqlServerを例に、ホイールを独自に作成します.まず完成品の効果を見てみましょう
プロセスの使用:
データベースのリンクを設定し、[リンクデータベース]をクリックして指定したサーバ上のデータベース名を取得し、データベース名をクリックして、データベースの下のすべてのテーブルを動的に取得します.
データテーブルをクリックすると、生成されたものは自動的に生成されたエンティティを取得し、生成されていない場合は「生成エンティティ」をクリックして自動的に表示を生成し、直接コピーして使用できます.
注意:server=192.168.0.154ここではローカルで構成されていない場合は直接server=.でよい.
開発環境:
コンパイラ:Visual Studio 2017
実行環境:windows 7 x 64
データベース:SqlServer 2012
コード実装手順:
一、ASP.NET Webアプリケーションを作成し、GenerateEntityと命名する
二、SqlSugarダイナミックリンクライブラリの適用
三、コードを書く
ここではフロントエンドとバックエンドに分けて、フロントエンドのページの展示、バックエンドのバックグラウンドのロジック(注:私たちはコードの展示なので、3層のアーキテクチャ、工場のモードなどをしないで、直接コントローラの中で完成して、必要な学生はプロジェクトの需要によって変更することができます)
内部実装ロジック:
           ,  【     】                     ;
          ,                   ;
    ,            ,      【    】    (               );

ここで私は直接コードを貼って、直接コピーして使用することができます.http://www.sina.com.cn/mid/search.shtml?q=%E8%85%BE%E9%BE%99%E5%A8%B1%E4%B9%90%E5%AE%98%E7%BD%91_18183615678%20_%20 fgフロントエンドhtmlページ
@{ ViewBag.Title = “Home Page”; }
リンクデータベースりんくでーたべーす:リンクデータベースりんくでーたべーす
データベース名:
        
        

        
        
        エンティティの  
        






バックエンドコントローラデータ

using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Mvc;
http://www.sina.com.cn/mid/search.shtml?q=%E8%85%BE%E9%BE%99%E5%A8%B1%E4%B9%90%E5%AE%98%E7%BD%91_18183615678%20_%20cd
namespace GenerateEntity.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
http://www.sina.com.cn/mid/search.shtml?q=%E8%85%BE%E9%BE%99%E5%A8%B1%E4%B9%90%E5%AE%98%E7%BD%91_18183615678%20_%20ke
public ActionResult About()
{
ViewBag.Message = “Your application description page.”;

        return View();
}
public ActionResult Contact()
{
ViewBag.Message = "Your contact page.";
return View();
}
//データベースのリンク
public JsonResult LinkServer(string Link)
{
ResultInfo result = new ResultInfo();
try
{
//データベース の
SqlSugarClient db = new SqlSugarClient(
new ConnectionConfig()
{
ConnectionString = ""+ Link + ";database=master",
DbType=DbType.SqlServer,//データベースタイプの
IsAutoCloseConnection=true,//データ・トランザクションを に し、トランザクションが する はトランザクション に します.
InitKeyType=InitKeyType.Attribute//エンティティプロパティからプライマリ・キーの を み む
});
string sql=@「SELECT top 100000 Name FROM Master..SysDatabases ORDER BY Name」//すべてのリンクのすべてのデータベース を い わせる
var strList = db.SqlQueryable(sql).ToList();
result.info = Newtonsoft.Json.JsonConvert.SerializeObject(strList);
result.res = true;
result.msg=「リンク !」;
}
catch (Exception ex)
{
result.msg = ex.Message;
}
return Json(result, JsonRequestBehavior.AllowGet);
}
//データベース に づいてすべてのテーブルを い わせる
public JsonResult GetTable(string Link,string Name)
{
ResultInfo result = new ResultInfo();
try
{
//データベース の
SqlSugarClient db = new SqlSugarClient(
new ConnectionConfig()
{
ConnectionString = ""+ Link + ";database="+ Name + "",
DbType=DbType.SqlServer,//データベースタイプの
IsAutoCloseConnection=true,//データ・トランザクションを に し、トランザクションが する はトランザクション に します.
InitKeyType=InitKeyType.Attribute//エンティティプロパティからプライマリ・キーの を み む
});
string sql=@"SELECT top 10000 Name FROM SYSOBJECTS WHERE TYPE='U'ORDER BY Name"//すべてのリンクのすべてのデータベース を い わせる
var strList = db.SqlQueryable(sql).ToList();
result.info = Newtonsoft.Json.JsonConvert.SerializeObject(strList);
result.res = true;
result.msg=「クエリー !」
}
catch (Exception ex)
{
result.msg = ex.Message;
}
return Json(result, JsonRequestBehavior.AllowGet);
}
//エンティティの
public JsonResult GenerateEntity(string Link, string Name,string TableName,string type)
{
ResultInfo result = new ResultInfo();
try
{
//データベース の
SqlSugarClient db = new SqlSugarClient(
new ConnectionConfig()
{
ConnectionString = ""+ Link + ";database="+ Name + "",
DbType=DbType.SqlServer,//データベースタイプの
IsAutoCloseConnection=true,//データ・トランザクションを に し、トランザクションが する はトランザクション に します.
InitKeyType=InitKeyType.Attribute//エンティティプロパティからプライマリ・キーの を み む
});
string path = "C:\\Demo\\2";
if (type == "0")
{
path = "C:\\Demo\\2";
db.DbFirst.Where(TableName).CreateClassFile(path);
result.info = System.IO.File.ReadAllText(@""+ path + "\\"+ TableName + ".cs"+ "", Encoding.UTF8);
}
else if (type == "1")
{
path = "C:\\Demo\\3";
db.DbFirst.IsCreateAttribute().CreateClassFile(path);
result.info = "";
}
result.res = true;
result.msg=「 !」
}
catch (Exception ex)
{
result.msg = ex.Message;
}
return Json(result, JsonRequestBehavior.AllowGet);
}
// テーブル の
public JsonResult GetGenerateEntity(string TableName)
{
ResultInfo result = new ResultInfo();
try
{
string path = "C:\\Demo\\3";
result.info = System.IO.File.ReadAllText(@""+ path + "\\"+ TableName + ".cs"+ "", Encoding.UTF8);
result.res = true;
result.msg=「クエリー !」
}
catch (Exception ex)
{
result.msg = ex.Message;
try
{
if(result.msg.Contains(「ファイルが つかりません」)
{
string path = "C:\\Demo\\2";
result.info = System.IO.File.ReadAllText(@""+ path + "\\"+ TableName + ".cs"+ "", Encoding.UTF8);
result.res = true;
result.msg=「クエリー !」
}
}
catch (Exception)
{
result.msg = ex.Message;
}
}
return Json(result, JsonRequestBehavior.AllowGet);
}
//データベース
public class databaseName
{
public string Name { get; set; }
}
// データのカプセル
public class ResultInfo
{
public ResultInfo()
{
res = false;
startcode = 449;
info = "";
}
public bool res{get;set;}// り (true or false)
public string msg{get;set;}//メッセージを す
public int startcode{get;set;}//httpのステータスコードを す
public string info{get;set;}// される (resがtrueの は セット、resがfalseの はエラープロンプト)
}
}

}



このような可視化コードジェネレータが出てきました.IISにパブリッシュし、ブラウザラベル(コレクション)に設定すると、すばやく使用できます.


運転してみましょう.便利だと思いますか.