Мне нужно создать единый метод для выполнения операции crud на всех моих столах. Как
EntitySave()
EntityUpdate()
EntityGetList()
После создания этого метода я хочу выполнить все операции для всей таблицы в этом методе.
Поэтому, когда мне нужно сохранить данные со стороны клиента. Мне просто нужно передать имя таблицы и значения полей в параметре для сохранения данных в этой конкретной таблице. (Значит, я хочу создать модель во время выполнения). В техническом слове у меня есть общий метод crud для удаления обновления вставки, поэтому в одном методе Я могу выполнить все это на разных столах.
public ActionResult method()
{
var Dict = HttpContext.Application["SiteSettings"] as Dictionary<string, Dictionary<string, Dictionary<string, string>>>;
string value = "";
foreach(var key in Dict.Keys)
{
value = key;
}
Assembly Exectuteassembly = Assembly.GetExecutingAssembly();
Type Etity = Exectuteassembly.GetType(value);
object TGalaxyUserInstance = Activator.CreateInstance(Etity);
PropertyInfo[] properties = Etity.GetProperties(
BindingFlags.NonPublic | // Include protected and private properties
BindingFlags.Public | // Also include public properties
BindingFlags.Instance // Specify to retrieve non static properties
);
string[] values = new string[4];
values[0] = "0";
values[1] = "ThisTesting";
values[2] = "Howto";
values[3] = "UseInstance";
for (int i = 0, j = 0; j < properties.Length; j++, i++)
{
if(i==0 && j == 0)
{
properties[i].SetValue(TGalaxyUserInstance, j, null);
}
else
{
properties[i].SetValue(TGalaxyUserInstance,values[j], null);
}
}
using (var _mSession = ApplicationCore.Instance.SessionFactory.OpenSession())
{
using (var transaction = _mSession.BeginTransaction())
{
_mSession.Save(TGalaxyUserInstance);
transaction.Commit();
}
}
return RedirectToAction("List", "Home");
}