ApplicationEntity PopulateApplication(IDataReader reader)
        {
            ApplicationEntity application = new ApplicationEntity()
            {
                ApplicationId   = (int)reader["ApplicationId"],
                ApplicationName = reader["ApplicationName"].ToString(),
                Owner           = reader["Owner"].ToString(),
                Comment         = reader["Comment"].ToString(),
                CreationDate    = (DateTime)reader["CreationDate"],
                UpdateDate      = (DateTime)reader["UpdateDate"],
                Enable          = (bool)reader["Enable"]
            };

            return(application);
        }
        /// <summary>
        /// 添加一个应用。
        /// </summary>
        /// <param name="application">待添加的应用。</param>
        public void Add(ApplicationEntity application)
        {
            Contract.Requires(application != null);
            Contract.Requires(!string.IsNullOrWhiteSpace(application.ApplicationName));
            Contract.Requires(!string.IsNullOrWhiteSpace(application.Owner));

            IDataParameter[] parameters = new IDataParameter[4];

            parameters[0] = this.db.NewDataParameter("@ApplicationName", application.ApplicationName);
            parameters[1] = this.db.NewDataParameter("@Owner", application.Owner);
            parameters[2] = this.db.NewDataParameter("@Comment", application.Comment);
            parameters[3] = this.db.NewDataParameter("@Enable", application.Enable);

            int result = this.db.ExecuteNonQuery(CommandType.StoredProcedure, "EF_Application_Add", parameters);

            if (result == 0)
            {
                throw new Exception("新建应用失败!");
            }
        }
        /// <summary>
        /// 添加一个应用。
        /// </summary>
        /// <param name="application">待添加的应用。</param>
        public void Add(ApplicationEntity application)
        {
            Contract.Requires(application != null);
            Contract.Requires(!string.IsNullOrWhiteSpace(application.ApplicationName));
            Contract.Requires(!string.IsNullOrWhiteSpace(application.Owner));

            IDataParameter[] parameters = new IDataParameter[4];

            parameters[0] = this.db.NewDataParameter("@ApplicationName", application.ApplicationName);
            parameters[1] = this.db.NewDataParameter("@Owner", application.Owner);
            parameters[2] = this.db.NewDataParameter("@Comment", application.Comment);
            parameters[3] = this.db.NewDataParameter("@Enable", application.Enable);

            int result = this.db.ExecuteNonQuery(CommandType.StoredProcedure, "EF_Application_Add", parameters);

            if (result == 0)
            {
                throw new Exception("新建应用失败!");
            }
        }
        /// <summary>
        /// 获取一个应用。
        /// </summary>
        /// <param name="applicationId">应用的Id。</param>
        /// <returns>欲获取的应用。</returns>
        public ApplicationEntity Get(int applicationId)
        {
            Contract.Requires(applicationId > 0);

            IDataParameter[] parameters = new IDataParameter[1];
            parameters[0] = this.db.NewDataParameter("@ApplicationId", applicationId);

            ApplicationEntity application;

            using (IDataReader reader = this.db.ExcuteReader(CommandType.StoredProcedure, "EF_Application_Get", parameters))
            {
                if (reader.Read())
                {
                    application = this.PopulateApplication(reader);
                }
                else
                {
                    application = new ApplicationEntity();
                }
            }

            return application;
        }
        /// <summary>
        /// 获取一个应用。
        /// </summary>
        /// <param name="applicationId">应用的Id。</param>
        /// <returns>欲获取的应用。</returns>
        public ApplicationEntity Get(int applicationId)
        {
            Contract.Requires(applicationId > 0);

            IDataParameter[] parameters = new IDataParameter[1];
            parameters[0] = this.db.NewDataParameter("@ApplicationId", applicationId);

            ApplicationEntity application;

            using (IDataReader reader = this.db.ExcuteReader(CommandType.StoredProcedure, "EF_Application_Get", parameters))
            {
                if (reader.Read())
                {
                    application = this.PopulateApplication(reader);
                }
                else
                {
                    application = new ApplicationEntity();
                }
            }

            return(application);
        }
        ApplicationEntity PopulateApplication(IDataReader reader)
        {
            ApplicationEntity application = new ApplicationEntity()
            {
                ApplicationId = (int)reader["ApplicationId"],
                ApplicationName = reader["ApplicationName"].ToString(),
                Owner = reader["Owner"].ToString(),
                Comment = reader["Comment"].ToString(),
                CreationDate = (DateTime)reader["CreationDate"],
                UpdateDate = (DateTime)reader["UpdateDate"],
                Enable = (bool)reader["Enable"]
            };

            return application;
        }