LnskyDB
LnskyDB拡張子がラムダDapperの支持時間サブライブラリサブテーブル基づいて、サブライブラリーは、カスタムサブテーブル方式であってもよい。T4及び手書きエンティティクラスを心配することなく、エンティティ・クラスを生成することができます。
ドキュメント住所:https://liningit.github.io/LnskyDB/
オープンソース住所:https://github.com/liningit/LnskyDB
nugetアドレス:https://www.nuget.org/packages/LnskyDB/
。私たちの前でLnskyDB CRUD操作、我々はいくつかの基本クラスの倉庫とエンティティクラスT4を終了するだけでなく、実体を生成する方法
入庫
ストレージ1を呼び出している取得の2つの方法がありますRepositoryFactory.Create<T>()
方法を作成するためには、倉庫を作成継承するクラスがあるRepository<T>
。あなたがインターフェイスを作成する必要がある場合も継承をインタフェースすることができますIRepository<T>
。
倉庫でCommandTimeout
クエリタイムアウトを設定することができます
Entityクラス
継承されるエンティティクラスを作成します。BaseDBModel
抽象メソッドの内部で、かつ実現
1.主キーの配置
GetDBModel_PKCols()
テーブルのプライマリキーなければならない例の名前を返します。
private static ImmutableList<string> _DBModel_PKCols = ImmutableList.Create("SysNo");
public override ImmutableList<string> GetDBModel_PKCols() => _DBModel_PKCols;
追加設定以来2
GetDBModel_IncrementCol();
SetIncrementValue(int value)
追加のテーブルから返します、そして付加価値を提供しているので、自動インクリメントしなければならない例の場合:
public override string GetDBModel_IncrementCol() => "Id";
public override void SetIncrementValue(int value)
{
Id = value;
}
3.構成リポジトリ時計の名前
GetDBModel_TableName()
GetDBModel_DBName()
それがサブテーブル{0}は一例であることが後である場合、テーブル名とライブラリの名前を返し、ライブラリを分割しなければなりません:
public override string GetDBModel_TableName() => "Purify_ProductSaleByDay{0}";
public override string GetDBModel_DBName() => "Lnsky{0}";
4.サブライブラリーサブテーブル構成
GetShuffledModel()は、SetShuffledData(object obj)
サブサブテーブルリポジトリオブジェクトを返し、サブライブラリサブテーブルの値の例を達成するために設けられています。
public override ShuffledModel GetShuffledModel()
{
if (DBModel_ShuffledTempDate == DateTime.MinValue)
{
throw new NoShuffledException(GetDBModel_TableName(), "分库分表时间,ShuffledTempDate");
}
return ShuffledByDbTable(DBModel_ShuffledTempDate);
}
DateTime _DBModel_ShuffledTempDate;
[JsonIgnore]
public DateTime DBModel_ShuffledTempDate { get { return StatisticalDate != DateTime.MinValue ? StatisticalDate : _DBModel_ShuffledTempDate; } set { _DBModel_ShuffledTempDate = value; } }
public override void SetShuffledData(object obj) { DBModel_ShuffledTempDate = (DateTime)obj; }
テンプレート生成T4
T4は、コードは自動的に私たちが実際の構成に合わせて変更することができるアイテムディレクトリ内の「LnskyDB.Demo」T4の下のエンティティクラスを生成した
生成された設定を記述するために使用される「Config.DbConfigs」に「DbHelper.ttinclude」
- 接続文字列はのConnectionStringことを示します
- データベースは、データベースの実際の名前です
- データベース名は「appsettings.json」内に格納された名前です
- テーブル名は、テーブルを生成すると、すべての名_を表す接頭語の表現があるが名_
- ExcludeTableNameは、それらのテーブルを除外することを約束しました
- ShuffledConfigsは、テーブル名、キーと値のペアのShuffledConfigフォームを記憶するように構成されたサブライブラリーサブテーブルを表し
- ShuffledConfigサブテーブル固有の構成サブライブラリー行サブライブラリShuffledDataサブテーブルによれば、MinShuffledTempDateは最小値を示し
「Entity.ttは」固体、倉庫、ストレージインタフェース実際のコードを作成することです。私たちは、自分のプロジェクトの実際の状況に応じて変更することができます