亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

乌兰浩特市| 乌苏市| 安阳县| 遂平县| 罗源县| 奉贤区| 自贡市| 安吉县| 贵南县| 抚松县| 陵水| 利辛县| 巴塘县| 双辽市| 深圳市| 高雄市| 榆树市| 扬州市| 文登市| 中山市| 卫辉市| 尉氏县| 岑溪市| 宜昌市| 大余县| 杭锦后旗| 通河县| 潜山县| 图木舒克市| 灵武市| 南阳市| 保定市| 宜州市| 龙南县| 同心县| 漳浦县| 莎车县| 吉安县| 花莲市| 通榆县| 沿河|