Возвращать вложенные сложные типы из WCF WebGet - PullRequest
0 голосов
/ 15 февраля 2012

Я создал службу данных wcf, которая возвращает список пациентов сложного типа. Я использовал модельный браузер для создания сложного типа для «Пациента» и сложного типа для «Контакта». Я хотел бы добавить свойство «Контакты» в «Пациент», которое будет списком.

Как добавить вложенный список сложных типов в качестве свойства и вернуть его?

    [WebGet]
    public List<Patient> GetPatientByID(int tolid)
    {
        List<Patient> list = new List<Patient>();

        // create pds user session record
        SqlConnection conn = new SqlConnection("Data Source=server;Initial Catalog=db;User ID=<ID>;Password=<pwd>");
        SqlCommand cmd = new SqlCommand();

        try
        {
            // open the connection
            conn.Open();

            // configure the command
            cmd.Connection = conn;
            cmd.CommandText = "sp_tol_patient_select";
            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("tolid", tolid));

            // execute the command and convert the decimal value
            // returned by ExecuteScalar to an int to get new identity value
            SqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                Patient itm = new Patient();
                itm.MRN = reader["UNITNUMBER"].ToString();
                itm.AccountNum = reader["ACCTNUM"].ToString();
                itm.FullName = reader["PATNAME"].ToString();
                itm.BirthDate = reader["BIRTHDATE"].ToString();
                itm.Gender = reader["SEX"].ToString();

                list.Add(itm);
            }

            return list;
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
        }
        finally
        {
            cmd.Dispose();
            conn.Close();
        }
    }
...