一歩一歩ASPを作成する.NET MVC 5プログラム[Repository+Autofac+Automapper+SqlSugar](三)
6868 ワード
前言
前編『一歩一歩ASP.NET MVC 5プログラムを作成する[Repository+Autofac+Automapper+SqlSugar](二)』では、次の操作を行います.
簡単なデータベース接続とデータクエリー操作を実現しました.簡単なデータベース接続である以上、さらにアップグレード、カプセル化する必要があります.今日は国内開発者が開発し維持するORMオープンソースフレームワークを導入します.もしあなたがまだORMとは何かを知らないならば、あるいはC#/.NETで主流のORMについては、当サイトのORMに関する記事を参照してください.
本編のポイント
SqlSugarのインストール
おなじみのレシピか、おなじみの味か、前述のようにNugetパッケージ管理ツールを使用してSqlSugarというORMコンポーネントをインストールします.
本シリーズはMySQLデータベースを使用しているので、MySQLデータベースをサポートするためには、SqlSugarのMySQLコンポーネントパッケージであるmySqlSugarをインストールする必要があります.
SqlSugarを使用してMySQLデータベースに接続
SqlSugarのインストールが完了したら、SqlSugarの公式サイトに行って、対応するデータベース接続を確認します.アドレス:SqlSugar接続データベースドキュメント、説明は以下の通りです.
SqlSugarClentはパラメータConnectionConfigによって作成され、ConnectionConfigには次の4つの属性があります.
1.Connection:接続文字列
2.DataType:データベースタイプ
3.IsAutoCloseConnection:データベースを自動的に解放するかどうか、trueに設定してcloseまたはUsingの操作を必要としないので、お勧めします.
4.InitKeyType:プライマリ・キーとオートカラム情報を初期化する方法
InitKeyType.SystemTableは、データベースからプライマリ・キーの自増列を自動的に読み出す情報を表す
InitKeyType.Attributeは、属性からプライマリ・キーとオートインクリメント・カラムを読み出す情報を表します.
接続例は次のとおりです.
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() {
ConnectionString = Config.ConnectionString, //
DbType = DbType.SqlServer, //
IsAutoCloseConnection = true, // false
InitKeyType=InitKeyType.SystemTable }); // SystemTable
OK.プロジェクト[TsBlog.Repositories]でデータベース接続の構成を管理するクラスを作成します:Config.cs、コードは以下の通りです.
using System.Configuration;
namespace TsBlog.Repositories
{
///
///
///
public static class Config
{
///
/// ( )
///
private static readonly string _connectionString =ConfigurationManager.ConnectionStrings["TsBlogMySQLDb"].ConnectionString;
///
/// ( )
///
public static string ConnectionString
{
get { return _connectionString; }
}
}
}
データベースファクトリ管理クラスをもう1つ作成:DbFactory.cs:
using SqlSugar;
namespace TsBlog.Repositories
{
///
///
///
public class DbFactory
{
///
/// SqlSugarClient
///
///
public static SqlSugarClient GetSqlSugarClient()
{
var db = new SqlSugarClient(new ConnectionConfig()
{
ConnectionString = Config.ConnectionString, //
DbType = DbType.MySql, //
IsAutoCloseConnection = true, // false
InitKeyType = InitKeyType.Attribute
}); // SystemTable
return db;
}
}
}
最後にPostRepositoryを改造するcsクラスのコード:
using System.Collections.Generic;
using TsBlog.Domain.Entities;
namespace TsBlog.Repositories
{
///
/// POST
///
public class PostRepository
{
///
/// ID
///
/// Post ID
///
public Post FindById(int id)
{
#region Ado.net
//var ds = MySqlHelper.Query("SELECT * FROM tb_post WHERE Id=@Id", new MySqlParameter("@Id",id));
//var entity = ds.Tables[0].ToList().FirstOrDefault();
//return entity;
#endregion
#region SqlSugar
using (var db = DbFactory.GetSqlSugarClient())
{
var entity = db.Queryable().Single(x => x.Id == id);
return entity;
}
#endregion
}
///
///
///
///
public List FindAll()
{
#region Ado.net
//var ds = MySqlHelper.Query("SELECT * FROM tb_post");
//return ds.Tables[0].ToList();
#endregion
#region SqlSugar
using (var db = DbFactory.GetSqlSugarClient())
{
var list = db.Queryable().ToList();
return list;
}
#endregion
}
}
}
F 5を押して直接運転すると、次のエラーが発生します.
SqlSugarはデータエンティティと属性に基づいてマッピングを処理するため、上記の例では、エンティティオブジェクト(post)とデータテーブル(tb_post)のマッピング関係はまだ構成されていません.プロジェクト[TsBlog.Domain]に戻り、このプロジェクトでもNugetを使用してSqlSugarをインストールし、エンティティクラス:Postを開きます.csファイル、エンティティとデータベースのマッピング構成プロパティを追加します.次のようにします.
using SqlSugar;
using System;
namespace TsBlog.Domain.Entities
{
///
///
///
[SugarTable("tb_post")]
public class Post
{
///
/// ID
///
[SugarColumn(IsIdentity = true, IsPrimaryKey = true)]
public int Id { get; set; }
///
///
///
public string Title { get; set; }
///
///
///
public string Content { get; set; }
///
/// ID
///
public string AuthorId { get; set; }
///
///
///
public string AuthorName { get; set; }
///
///
///
public DateTime CreatedAt { get; set; }
///
///
///
public DateTime PublishedAt { get; set; }
///
///
///
public bool IsDeleted { get; set; }
///
///
///
public bool AllowShow { get; set; }
///
///
///
public int ViewCount { get; set; }
}
}
[SugarTable(「tb_post」)はSqlSugarがエンティティクラスとデータテーブルのマッピングを処理するときのテーブル構成であり、[SugarColumn(IsIdentity=true,IsPrimaryKey=true)]はエンティティ属性とテーブルフィールドのマッピング構成であり、より多くのテーブルと属性のマッピング構成は公式ドキュメント、アドレスを参照してください.http://www.codeisbug.com/Doc/...
再びF 5を押して運転しますが、今回は前編とAdoを使うことができます.Net操作データベースのような実行効果:
OK、SqlSugarの基本的な統合と使用について実現しました.今日この文章はここまでです.読んでくれてありがとう.
本論文は、コード友網「一歩一歩ASP.NET MVC 5プログラムを作成する[Repository+Autofac+Automapper+SqlSugar](三)」に同期して発表された.