Smark.강력한 성능과 유연성을 갖춘 Data Expression
24899 단어 express
public RESULT Avg<RESULT, Entity>(string field) where Entity : Smark.Data.Mappings.DataObject;
public RESULT Avg<RESULT, Entity>(string field, bool DISTINCT) where Entity : Smark.Data.Mappings.DataObject;
public RESULT Avg<RESULT, Entity>(string field, IConnectinContext cc) where Entity : Smark.Data.Mappings.DataObject;
public RESULT Avg<RESULT, Entity>(string field, bool DISTINCT, IConnectinContext cc) where Entity : Smark.Data.Mappings.DataObject;
public int Count<T>() where T : Smark.Data.Mappings.DataObject;
public int Count<T>(IConnectinContext cc) where T : Smark.Data.Mappings.DataObject;
public int Delete<T>() where T : Smark.Data.Mappings.DataObject;
public int Delete<T>(IConnectinContext cc) where T : Smark.Data.Mappings.DataObject;
public int Edit<T>(Action<T> handler) where T : Smark.Data.Mappings.DataObject, new();
public int Edit<T>(params Field[] fields) where T : Smark.Data.Mappings.DataObject, new();
public int Edit<T>(IConnectinContext cc, Action<T> handler) where T : Smark.Data.Mappings.DataObject, new();
public int Edit<T>(IConnectinContext cc, params Field[] fields) where T : Smark.Data.Mappings.DataObject, new();
public IList<T> List<T>() where T : Smark.Data.Mappings.DataObject, new();
public IList<RESULT> List<T, RESULT>()
where T : Smark.Data.Mappings.DataObject, new()
where RESULT : new();
public IList<RESULT> List<T, RESULT>(params string[] orderby)
where T : Smark.Data.Mappings.DataObject, new()
where RESULT : new();
public IList<T> List<T>(params string[] orderby) where T : Smark.Data.Mappings.DataObject, new();
public IList<T> List<T>(Region region) where T : Smark.Data.Mappings.DataObject, new();
public IList<RESULT> List<T, RESULT>(Region region)
where T : Smark.Data.Mappings.DataObject, new()
where RESULT : new();
public IList<RESULT> List<T, RESULT>(IConnectinContext cc, params string[] orderby)
where T : Smark.Data.Mappings.DataObject, new()
where RESULT : new();
public IList<T> List<T>(IConnectinContext cc, params string[] orderby) where T : Smark.Data.Mappings.DataObject, new();
public IList<RESULT> List<T, RESULT>(IConnectinContext cc, Region region)
where T : Smark.Data.Mappings.DataObject, new()
where RESULT : new();
public IList<T> List<T>(IConnectinContext cc, Region region) where T : Smark.Data.Mappings.DataObject, new();
public IList<T> List<T>(Region region, params string[] orderby) where T : Smark.Data.Mappings.DataObject, new();
public IList<RESULT> List<T, RESULT>(Region region, params string[] orderby)
where T : Smark.Data.Mappings.DataObject, new()
where RESULT : new();
public IList<T> List<T>(IConnectinContext cc, Region region, params string[] orderby) where T : Smark.Data.Mappings.DataObject, new();
public IList<RESULT> List<T, RESULT>(IConnectinContext cc, Region region, params string[] orderby)
where T : Smark.Data.Mappings.DataObject, new()
where RESULT : new();
public T ListFirst<T>() where T : Smark.Data.Mappings.DataObject, new();
public RESULT ListFirst<T, RESULT>()
where T : Smark.Data.Mappings.DataObject, new()
where RESULT : new();
public RESULT ListFirst<T, RESULT>(IConnectinContext cc)
where T : Smark.Data.Mappings.DataObject, new()
where RESULT : new();
public T ListFirst<T>(IConnectinContext cc) where T : Smark.Data.Mappings.DataObject, new();
public T ListFirst<T>(params string[] orderby) where T : Smark.Data.Mappings.DataObject, new();
public RESULT ListFirst<T, RESULT>(params string[] orderby)
where T : Smark.Data.Mappings.DataObject, new()
where RESULT : new();
public T ListFirst<T>(IConnectinContext cc, params string[] orderby) where T : Smark.Data.Mappings.DataObject, new();
public RESULT ListFirst<T, RESULT>(IConnectinContext cc, params string[] orderby)
where T : Smark.Data.Mappings.DataObject, new()
where RESULT : new();
public RESULT Max<RESULT, Entity>(string field) where Entity : Smark.Data.Mappings.DataObject;
public RESULT Max<RESULT, Entity>(string field, bool DISTINCT) where Entity : Smark.Data.Mappings.DataObject;
public RESULT Max<RESULT, Entity>(string field, IConnectinContext cc) where Entity : Smark.Data.Mappings.DataObject;
public RESULT Max<RESULT, Entity>(string field, bool DISTINCT, IConnectinContext cc) where Entity : Smark.Data.Mappings.DataObject;
public RESULT Min<RESULT, Entity>(string field) where Entity : Smark.Data.Mappings.DataObject;
public RESULT Min<RESULT, Entity>(string field, bool DISTINCT) where Entity : Smark.Data.Mappings.DataObject;
public RESULT Min<RESULT, Entity>(string field, IConnectinContext cc) where Entity : Smark.Data.Mappings.DataObject;
public RESULT Min<RESULT, Entity>(string field, bool DISTINCT, IConnectinContext cc) where Entity : Smark.Data.Mappings.DataObject;
public RESULT Sum<RESULT, Entity>(string field) where Entity : Smark.Data.Mappings.DataObject;
public RESULT Sum<RESULT, Entity>(string field, bool DISTINCT) where Entity : Smark.Data.Mappings.DataObject;
public RESULT Sum<RESULT, Entity>(string field, IConnectinContext cc) where Entity : Smark.Data.Mappings.DataObject;
public RESULT Sum<RESULT, Entity>(string field, bool DISTINCT, IConnectinContext cc) where Entity : Smark.Data.Mappings.DataObject;
이상은 Expression이 갖추고 있는 기능으로 데이터 조회, 통계 집계, 수정과 삭제 등의 작업을 완성할 수 있다.Smark를 쓰면Data는 데이터 액세스를 수행할 때 대부분 Expression과 거래하고 있다고 믿습니다.다음은 그것의 각 기능을 상세하게 소개한다.
데이터 조회
우리가 new에 Expression이 나올 때 관련 조작을 할 수 있지만, 이 조작은 전체 테이블에 대한 조건을 가지고 있지 않습니다.
var employees = exp.List<Employees>();
모든 직원을 얻지만, 조회를 실현하는 것은 그리 간단하지 않다. 조건을 붙여 특정한 페이지의 데이터를 얻고, 페이지를 나누는 등일 수도 있다.
Expression exp = new Expression();
if (ProductName != null)
{
exp &= Modules.Product.productName.Like(ProductName + "%");
UrlParams.Add("productname", ProductName);
}
if (PriceFrom != null)
{
exp &= Modules.Product.unitPrice >= PriceFrom;
UrlParams.Add("pricefrom", PriceFrom.ToString());
}
if (PriceTo != null)
{
exp &= Modules.Product.unitPrice <= PriceTo;
UrlParams.Add("priceTo", PriceTo.ToString());
}
DataPage.PageSize = 10;
DataPage.RecordCount = exp.Count<Modules.Product>();
Records = exp.List<Modules.Product>(new Region(DataPage.PageIndex, DataPage.PageSize),OrderField);
이상은 비교적 자주 사용하는 조회로 상황에 따라 상응하는 조회 조건을 추가하고 관련 조건의 기록수를 통계하여 해당 페이지의 기록수를 얻는다.
데이터 삭제
삭제는 일반적으로 SQL을 실행하거나 구성 요소에서 대상을 삭제하지만 Smark에서 합니다.Data에서 Expression은 적절한 작업을 손쉽게 수행할 수 있습니다.
Expression exp = new Expression();
exp.Delete<Employee>();
Employee의 모든 객체를 삭제하면 다음과 같은 조건 기반 삭제가 더 많이 발생합니다.
(Modules.Employee.city == "gz").Delete<Modules.Employee>();
이렇게 하면 저희가 어느 도시의employee를 삭제할 수 있어요.
데이터 업데이트
Expression exp = new Expression();
exp.Edit<Modules.Employee>(o => { o.City = "bbq"; });
(Modules.Employee.city == "gz").Edit<Modules.Employee>(o => { o.City = "bbq"; });
같은 방식을 바탕으로 데이터 편집을 할 수 있다
Expression은 어떤 조건을 처리합니까?
Expression이 제공하는 조건 조합은 매우 유연하여 다시 불러오기 |와 & 조건을 실제 SQL에 더욱 가깝게 작성할 수 있도록 하는 방식으로 이 연산의 다양성도 잘 활용되었다.
qual = (Qualification.sellerID == qinfo.SellerID & Qualification.storeID == qinfo.StoreID).ListFirst<Qualification>();
Expression exp = new Expression();
if (EmployeeID != null)
exp &= Modules.Order.employeeID.At() == EmployeeID;
if (CustomerID != null)
exp &= Modules.Order.customerID.At() == CustomerID;
if (OrderDateFrom != null)
exp &= Modules.Order.orderDate >= OrderDateFrom;
if (OrderDateTo != null)
exp &= Modules.Order.orderDate <= OrderDateTo;
if (RequiredDateFrom != null)
exp &= Modules.Order.requiredDate >= RequiredDateFrom;
if (RequiredDateTo != null)
exp &= Modules.Order.requiredDate <= RequiredDateTo;
(Modules.Employee.employeeID == new int[] {2,4,5 }).Delete<Modules.Employee>();
(Modules.Employee.employeeID != new int[] {2,4,5 }).Delete<Modules.Employee>();
Modules.Order.orderDate["1997-1-1", "1997-2-1"].List<Modules.Order>();
(Modules.Order.employeeID== Modules.Employee.employeeID[Modules.Employee.city==new []{"gz","sz"}]).List<Modules.Order>();
Expression 대상은 매우 유연하지만, 그 역할은 실체 설명
Smark.Data는 Apache License 2.0(Apache) 프로토콜을 기반으로 하는 오픈 소스 구성 요소로, 자세한 내용은 4http://www.ikende.com/이해하다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
express를 사용하여 AWS S3 이미지에 액세스하기 위해 미리 서명된 URL을 생성하는 방법은 무엇입니까?이를 달성하는 방법 중 하나는 미리 서명된 URL을 사용하는 것입니다. However, the object owner can optionally share objects with others by creating a...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.