上一節中,我們已經介紹了,使用CriteriaOperator表達式,獲取對象數據。
CriteriaOperator criteria = CriteriaOperator.Parse("[UserID]='" + obj.UserID + "'");
Users objnew = session.FindObject<Users>(criteria);
如果查詢結果是多條數,我們可以使用XPCollection來接收:
XPCollection<Users> coll = new XPCollection<Users>(session);
CriteriaOperator criteria = CriteriaOperator.Parse("");
SortProperty sortProperty = new SortProperty("FirstName", SortingDirection.Ascending);
SortingCollection s = new SortingCollection(sortProperty);
coll.Session = session;
coll.Criteria = criteria;
coll.Sorting = s;
我們修改一下上節的例子,修改后的代碼如下:
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using DevExpress.Data.Filtering;
using DevExpress.Xpo;
using DevExpress.Xpo.DB;
using XPOModel.DemoDB;
namespace DevConsole
{
class Program
{
static void Main(string[] args)
{
string provider = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;//獲取數據庫連接
IDataLayer datalayer = new SimpleDataLayer(XpoDefault.GetConnectionProvider(provider, AutoCreateOption.DatabaseAndSchema));//建立數據層XPO獨有的
DevExpress.Xpo.Session session = new DevExpress.Xpo.Session(datalayer); //將數據層和會話綁定
for (int i = 0; i < 10; i++)
{
Users obj = new Users(session);
obj.FirstName = "Dave_" + i.ToString();
obj.LastName = "Annable";
obj.EmailID = "Admin@gmail.com";
obj.Save();
}
XPCollection<Users> coll = new XPCollection<Users>(session);
CriteriaOperator criteria = CriteriaOperator.Parse("");
SortProperty sortProperty = new SortProperty("FirstName", SortingDirection.Ascending);
SortingCollection s = new SortingCollection(sortProperty);
coll.Session = session;
coll.Criteria = criteria;
coll.Sorting = s;
for (int j = 0; j < coll.Count; j++)
{
Users obj = coll[j];
Console.WriteLine(string.Format("ID:{0},FirstName:{1},LastName:{2}", obj.UserID, obj.FirstName, obj.LastName));
}
Console.ReadLine();
}
}
}
運行程序后,控制台顯示如下:

圖一 執行查詢結果
CriteriaOperator還可以應用於XpoDataSource(后續將提到如何使用)。
前台添加XpoDataSource控件如下:
<dx:XpoDataSource ID="XpoDataSource1" runat="server" ServerMode="True" TypeName="XPOModel.DemoDB.Users"></dx:XpoDataSource>
后台代碼指標查詢過濾條件如下:
XpoDataSource1.Session = session; XpoDataSource1.Criteria = "UserID='122008'";
展現效果如下:

圖二 XpoDataSource執行過濾查詢后結果
下一節,我們將通過一個完整示例,介紹如何使用DevExpress控件,通過非常少的代碼實現CRUD操作...
博文作者:挪威森林(Coding of life)
博文出處:http://www.cnblogs.com/allenlf/
主要研究:Web開發框架、ORM框架、WCF框架、醫療行業軟件開發(HRP、EMR、CP、OA)
