システムを使用しました。
System.Collections.Genericを使用しました。
System.Linqのを使用しました。
System.Textのを使用しました。
System.Threading.Tasksを使用しました。
モデルを用いました。
System.IOを使用しました。
するSystem.Reflectionを使用しました。
System.ComponentModel.DataAnnotationsを使用しました。
DAL名前空間
{
publicクラスのDBhelp
{
公共の文字列の追加<T>(リストT){
//取得任意のクラス型
のvar T1 = typeof演算(T);
//属性の型を取得
PropertyInfo [] PRP = t1.GetPropertiesを( );
//追加SQLスプライシング
文字列strが= + t1.name + "値" INSERT INTO"(";
//宣言変数
のint i = 0;
//ループを介して属性
のforeach(PRPの項目PropertyInfo)を
{
I ++;
//主キーを分析して、空でない
(item.GetCustomAttribute(typeof演算(trueにKeyAttribute))== NULL)すると
{
// iは、アレイのサイズプラス端SQLの長さ)又はスプライシングフィールドに等しい場合
IF(I == prp.Length)
{
STR + = " '" + item.GetValue(リスト)+ "')";
}
他の
{
STR + = " '" + item.GetValue(一覧)+ "'、";
}
} } SQLを返す// 戻りSTRを; } 削除// パブリック文字列デル<T>(モデルT、int型のID) { VAR typeof演算= T1(T); PropertyInfo [] PRP = t1.GetProperties()。 文字列str = "";
foreachの(項目VARにおけるPRP)
{
STR + =(+ t1.name + "WHERE" + item.name + "=" "から削除")+ ID;
BREAK;
}
戻りSTR;
}
パブリック文字列<T>(TルックSTU)
{
VARタイプは= typeof演算(T);
// StringBuilderの作成
文字列STRを= + type.name "SELECT * FROM";
//データテーブルにクエリを受信する
リターンSTR;
}
パブリック文字列の編集<T>(モデルT、 IDのINT)
{
//現在のエンティティを取得
するvar TT = typeof演算(T)は、
//プロパティを取得
PropertyInfo [] = propertyInfos tt.GetProperties();
//新しい動的ストリング
列STR = "";
STR + = "更新" tt.Name + + "SET";
I = 0をint型;
//ループ要素の
foreachの(VARアイテムのpropertyInfos)
{
私は++; //現在の要素の数から外れてしまった
のIF(item.GetCustomAttribute(typeof演算(KeyAttribute)trueに、)== NULL)
{
//これが最後の要素である場合
(I == propertyInfos.Length場合)
{
STR + = item.name + "= '" + item.GetValue(モデル)+ "'"。
}
他
{
STR + = item.Name + "= '" + item.GetValue(モデル)+ "'"。
}
}
}
//循环输出
foreachの(propertyInfosにおけるVARアイテム)
{
STR + = "" + item.Name + "=" + ID。
ブレーク;
}
STRを返します。
}
}
}