中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ServiceStack 項目實例 008 ServiceStack.Examples - 2

發布時間:2020-06-14 11:18:49 來源:網絡 閱讀:695 作者:九界藍圖 欄目:編程語言

 

    先回歸下SS的運行環境 

     ServiceStack 項目實例 008 ServiceStack.Examples - 2


          我們接續前文,說明一下ServiceStack.Examples中的實用經典的代碼(下面的代碼是更新成新版寫法后的):

        

public object Any(GetUsers request)
        {
            using (var dbConn = ConnectionFactory.OpenDbConnection())
            {
                var users = new List<User>();
                if (request.UserIds != null && request.UserIds.Count > 0)
                {
                    users.AddRange(dbConn.GetByIds<User>(request.UserIds));
                }
                if (request.UserNames != null && request.UserNames.Count > 0)
                {
                    users.AddRange(dbConn.Select<User>(
                        "UserName IN ({0})", request.UserNames.SqlInValues()));
                }
                return new GetUsersResponse { data = users };
            }


          這段服務實現的功能是通過一組ID或者一組用戶名為條件,搜索出一個用戶列表。我們先看入口類的參數參數定義:

          

public class GetUsers
{
    public List<long> UserIds { get; set; }
    public List<string> UserNames { get; set; }
}

        入口類參數定義了兩個列表,

UserIds

       為用戶ID的一組列表 ,通過

dbConn.GetByIds<User>(request.UserIds)

查詢到符合這組ID的用戶列表, 再調用

users.AddRange

加入到出口類中的data屬性上      

UserNames

       為用戶名字的一組列表,通過

dbConn.Select<User>("UserName IN ({0})", request.UserNames.SqlInValues())

查詢到一組包含有這組用戶名的用戶(是通過SQL的IN操作),再調用

users.AddRange

加入到出口類的data屬性上



       出口類的定義:

public class GetUsersResponse
{
    public GetUsersResponse()
    {
        this.data = new List<User>();
        this.ResponseStatus = new ResponseStatus();
    }
    public List<User> data { get; set; }
    public ResponseStatus ResponseStatus { get; set; }
}

      出口類是有一個User實體類集合,加上一個操作相應狀態類組成,原有出口類中用戶列表使用的是Users屬性(

this.Users = ArrayOfUser{get;set;}

),根據對接到extjs的要求,這個列表的屬性要求名字為data,這里改為data,ArrayOfUser是一個用在舊版中的自定義的集合類,我們只需要使用List<User>即可,不需要定義這個集合


     以下是User實體類:

public class User
{
    [AutoIncrement]
    public int Id { get; set; }
    public string UserName { get; set; }
    public string Email { get; set; }
    public string Password { get; set; }
    public Guid GlobalId { get; set; }
}

    

     ResponseStatus 是SS系統內置的HTTP相應狀態類,其中封裝了HTTP錯誤返回代碼,錯誤消息以及錯誤堆棧等,而且提供了三種形式的覆寫構造方式。 

// Summary:
    //     Common ResponseStatus class that should be present on all response DTO's
    [DataContract]
    public class ResponseStatus
    {
        // Summary:
        //     Initializes a new instance of the ServiceStack.ServiceInterface.ServiceModel.ResponseStatus
        //     class.  A response status without an errorcode == success
        public ResponseStatus();
        //
        // Summary:
        //     Initializes a new instance of the ServiceStack.ServiceInterface.ServiceModel.ResponseStatus
        //     class.  A response status with an errorcode == failure
        public ResponseStatus(string errorCode);
        //
        // Summary:
        //     Initializes a new instance of the ServiceStack.ServiceInterface.ServiceModel.ResponseStatus
        //     class.  A response status with an errorcode == failure
        public ResponseStatus(string errorCode, string message);
        // Summary:
        //     Holds the custom ErrorCode enum if provided in ValidationException otherwise
        //     will hold the name of the Exception type, e.g. typeof(Exception).Name A value
        //     of non-null means the service encountered an error while processing the request.
        [DataMember(Order = 1)]
        public string ErrorCode { get; set; }
        //
        // Summary:
        //     For multiple detailed validation errors.  Can hold a specific error message
        //     for each named field.
        [DataMember(Order = 4)]
        public List<ResponseError> Errors { get; set; }
        //
        // Summary:
        //     A human friendly error message
        [DataMember(Order = 2)]
        public string Message { get; set; }
        //
        [DataMember(Order = 3)]
        public string StackTrace { get; set; }
    }


更新了使用新版ServiceStack后的項目代碼 

http://down.51cto.com/data/1964107 



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

若尔盖县| 大安市| 达尔| 鱼台县| 合山市| 日照市| 周宁县| 石楼县| 金堂县| 天祝| 弥勒县| 横峰县| 电白县| 黄山市| 沛县| 承德市| 长汀县| 攀枝花市| 曲靖市| 板桥市| 蕉岭县| 云阳县| 津南区| 寿光市| 青川县| 民和| 石屏县| 洱源县| 名山县| 广河县| 巨鹿县| 洮南市| 西乌珠穆沁旗| 瑞金市| 绥棱县| 花莲县| 常宁市| 包头市| 乡城县| 宝山区| 永福县|