Маст (Mast) — это облегчённый ORM-фреймворк, который позволяет быстро начать работу за несколько минут и поддерживает базы данных MySQL, MSSQL, Oracle и Access.
В настоящее время Маст поддерживает следующие функции:
Пример кода:
int pageIndex = 1;
int pageSize = 3;
string strSql = "SELECT e.*, c.company_name FROM employee e INNER JOIN company c ON e.company_id = c.id WHERE e.name = @name";
ParamMap param = ParamMap.newMap();
param.setPageParamters(page, limit);
//Разбиение на страницы требует использования поля сортировки при запросе, обязательно укажите псевдоним таблицы SQL, например, для сотрудника: e
param.setOrderFields("e.id", true);
param.setParameter("name", "LiYang");
Session session = SessionFactory.GetSession();
List<Employee> emList = session.Find<Employee>(strSql, param);
Разбиение на страницы:
Пример кода:
public PageResult<Store> findByPage(int page, int limit)
{
Session session = SessionFactory.GetSession();
String sql = "select * from store";
ParamMap param = ParamMap.newMap();
param.setPageParamters(page, limit);
param.setOrderFields("id", true);
PageResult<Store> pageResult = session.FindPage<Store>(sql, param);
return pageResult;
}
public class PageResult<T>
{
/// <summary>
/// Общее количество записей в разбиении на страницы
/// </summary>
public int Total {get; set;}
/// <summary>
/// Коллекция результатов разбиения на страницы
/// </summary>
public List<T> DataList {get; set;}
}
Запрос одной записи:
Пример кода:
string strSql = "SELECT e.*, c.company_name FROM employee e INNER JOIN company c ON e.company_id = c.id WHERE e.name = @name";
ParamMap param = ParamMap.newMap();
param.setParameter("name", "LiYang");
Employee em = session.FindOne<Employee>(strSql, param);
Обычный запрос:
Пример кода:
string strSql = "SELECT e.*, c.company_name FROM employee e INNER JOIN company c ON e.company_id = c.id";
List<Employee> emList = session.Find<Employee>(strSql);
Добавление:
Пример кода:
//Создание компании
Company company = new Company();
company.CompanyName = txtName.Text.Trim();
company.Industry = txtIndustry.Text.Trim();
company.Address = txtAddress.Text.Trim();
session.Insert<Company>(company);
if (company.Id > 0) {
MessageBox.Show("Создание компании успешно!");
}
//Добавление сотрудника
Company company = m_CompanyList[cbCompany.SelectedIndex];
Employee employee = new Employee();
employee.Name = txtName.Text.Trim();
mployee.Age = Convert.ToInt32(txtAge.Text.Trim());
employee.Address = txtAddress.Text.Trim();
employee.Created = DateTime.Now;
employee.CompanyId = company.Id;
session.Insert<Employee>(employee);
if (employee.Id > 0)
{
MessageBox.Show("Добавление сотрудника успешно!");
}
Пакетное добавление:
Пример кода:
Session session = SessionFactory.GetSession();
session.BeginTransaction();
List<Company> compList = new List<Company>();
int count = 2000;
for(int i = 0; i < count; i++)
{
Company company = new Company();
company.CompanyName = "Name-" + i;
company.Industry = "Test-" + i;
company.Address = "Address-" + i;
company.Desc = "Description-" + i;
company.Order = "Order-" + i;
company.Created = DateTime.Now;
compList.Add(company);
}
session.Insert<Company>(compList);
session.Commit();
MessageBox.Show("Пакетное добавление успешно!");
Изменение:
Пример кода:
Company entity = new Company();
entity.Id = 1;
entity.Name = "Baidu";
session.Update(entity);
Пакетное изменение:
Пример кода:
List<Company> companyList = ...;
session.Update(companyList);
Удаление:
Пример кода:
Company company = m_companyList[i];
//удалить объект
session.Delete(company);
//удалить по id
session.Delete(company.Id);
Пакетное удаление:
Пример кода:
//удаление по объекту
List<Company> companyList = ...;
session.Delete(companyList);
//удаление по id
object[] ids = new object[]{1,2,3,4,5};
session.Delete(ids);
Отображение отношений между базой данных и объектами C#:
Пример кода:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Mast.Entity
{
[Table(Name = "company")]
public class Company
{
[Id(Name = "id", Strategy =
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )