using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.Common;
using System.ComponentModel;
using System.Transactions;

using Befri.Query;
using Befri.Data.SqlClient;
using Befri.Goldhoo.Models;
using Befri.Goldhoo.DataAccess;

namespace Befri.Goldhoo.Services
{
    /// <summary>
    /// 名    称: <%= Table.Text %>管理服务类
    /// 开发人员: 
    /// 开发日期: <%= DateTime.Today.ToLongDateString() %>
    /// </summary>
    public class <%= Table.AliasName %>Service : DataService, I<%= Table.AliasName %>Service
    {
        private <%= Table.AliasName %>DAO _<%= Table.aliasName %>DAO = new <%= Table.AliasName %>DAO();
        
        /// <summary>
        /// 返回满足查询条件的<%= Table.Text %>实体列表
        /// </summary>
        /// <param name="param">查询条件</param>
        /// <returns><%= Table.Text %>实体列表</returns>
        public IList<<%= Table.AliasName %>> Get<%= Table.AliasName %>s(QueryParameter param)
        {
            return _<%= Table.aliasName %>DAO.Get<%= Table.AliasName %>s(param);
        }
       
        /// <summary>
        /// 创建<%= Table.Text %>记录
        /// </summary>
        /// <param name="<%= Table.aliasName %>"><%= Table.Text %>对象</param>
        /// <returns></returns>
        public int Create<%= Table.AliasName %>(<%= Table.AliasName %> <%= Table.aliasName %>)
        {
        	return _<%= Table.aliasName %>DAO.Insert(<%= Table.aliasName %>);
        }
                  
        /// <summary>
        /// 更新<%= Table.Text %>记录
        /// </summary>
        /// <param name="<%= Table.aliasName %>"><%= Table.Text %>对象</param>
        /// <returns>受影响的记录数</returns>
        public int Update<%= Table.AliasName %>(<%= Table.AliasName %> <%= Table.aliasName %>)
        {
        	return _<%= Table.aliasName %>DAO.Update(<%= Table.aliasName %>);
        }
        
        /// <summary>
        /// 删除<%= Table.Text %>记录
        /// </summary>
        <% foreach(Arista.Data.ColumnSchema column in Table.Keys){%>/// <param name="<%= column.aliasName %>"><%= column.Text %></param> <% } %>
        /// <returns>受影响的记录数</returns>
        public int Delete<%= Table.AliasName %>(<%= KeyParamsText %>)
        {
        	return _<%= Table.aliasName %>DAO.Delete(<%= KeyParamsValueText %>);
        }
          
    }
}