Я разрабатываю сервер используя RESTFUL архитектуру на WCF, используя entity framework

Я разрабатываю сервер используя RESTFUL архитектуру на WCF, используя entity framework. Вопрос заключается в следующем - у меня есть БД(MySQL), я ее привязал к своему серверу и все работает добротно, однако стиль restful подразумевает помимо получения доступа к базе данных (GET) еще PUT, POST, DELETE Я был бы вам признателен если кто-нибудь сможет мне помочь или подсказать как правильно создать PUT, POST,DELETE

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using MySql.Data;

using WcfRestFullService.Model;

namespace WcfRestFullService
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "CustomerSevice" in code, svc and config file together.
    // NOTE: In order to launch WCF Test Client for testing this service, please select CustomerSevice.svc or CustomerSevice.svc.cs at the Solution Explorer and start debugging.
    public class CustomerSevice : ICustomerSevice
    {
        MySQLEntities dc;
        public CustomerSevice()
        {
            dc = new MySQLEntities();
        }
        public List<CustomerDataContract> GetAllCustomer()
        {
            var query = (from a in dc.customers
                         select a).Distinct();

            List<CustomerDataContract> CustomersList = new List<CustomerDataContract>();

            query.ToList().ForEach(x =>
            {
                CustomersList.Add(new CustomerDataContract
                {
                    Id_Cus = Convert.ToString(x.Id_Cus),
                    FirstName_Cus = x.FirstName_Cus,
                    LastName_Cus = x.LastName_Cus,
                    PhoneNum_Cus = x.PhoneNum_Cus.ToString(),
                    Email_Cus = x.Email_Cus,
                });
            });
            return CustomersList;
        }

        public CustomerDataContract CustomerDetails(string Id_Cus)
        {
            CustomerDataContract Cust = new CustomerDataContract();
            try
            {
                var query = (from a in dc.customers
                             where a.Id_Cus.Equals(Id_Cus)
                             select a).Distinct().FirstOrDefault();
                Cust.Id_Cus = query.Id_Cus.ToString();
                Cust.FirstName_Cus = query.FirstName_Cus;
                Cust.LastName_Cus = query.LastName_Cus;
                Cust.PhoneNum_Cus = query.PhoneNum_Cus.ToString();
                Cust.Email_Cus = query.Email_Cus;
            }
            catch (Exception ex)
            {
                throw new FaultException<string>(ex.Message);
            }
            return Cust;
        }


        // DELETE
        public string DeleteCustomer(string Id_Cus)
        {
            CustomerDataContract Cust = new CustomerDataContract();

            var query = (from n in dc.customers
                         where n.Id_Cus.Equals(Id_Cus)
                         select n).First();
            Cust.customer.Remove(query);
            Cust.SaveChanges();
            return query+" was deleted";
        }

        //Insert/POST

        public string InsertCustomer(CustomerDataContract customerDataContract)
        {
            CustomerDataContract Cust = new CustomerDataContract();
            // db_usuarioEntities context = new db_usuarioEntities();

            customer cust = new customer();

            cust.Id_Cus = customerDataContract.Id_Cus;
            cust.FirstName_Cus = customerDataContract.FirstName_Cus;
            cust.LastName_Cus = customerDataContract.LastName_Cus;
            // cust.fl_ativo = (customerDataContract.RegistroAtivo ? "S" : "N");
            cust.PhoneNum_Cus = customerDataContract.PhoneNum_Cus;
            cust.Email_Cus = customerDataContract.Email_Cus;

            Cust.customer.Add(cust);
            Cust.SaveChanges();
            //context.tb_usuarios.Add(usuario);
            //context.SaveChanges();
            return null;
        }

        public string UpdateCustomer(CustomerDataContract customerDataContract)
        {
            //using (db_usuarioEntities context = new db_usuarioEntities())
            using (CustomerDataContract Cust = new CustomerDataContract();)
            {

                /*LOCALIZA O USUÁRIO PELO SEU CÓDIGO*/
                customer cust = Cust.customer.Where(n => n.Id_Cus == customerDataContract.Id_Cus).First();


                cust.Id_Cus = customerDataContract.Id_Cus;
                cust.FirstName_Cus = customerDataContract.FirstName_Cus;
                cust.LastName_Cus = customerDataContract.LastName_Cus;
                //cust.fl_ativo = (usuarioEntity.RegistroAtivo ? "S" : "N");
                cust.PhoneNum_Cus = customerDataContract.PhoneNum_Cus;
                cust.Email_Cus = customerDataContract.Email_Cus;
                //cust.id_usuario = customerDataContract.Codigo.Value;


                /*SALVA AS ALTERAÇÕES REALIZADAS*/
                Cust.SaveChanges();
                return null;
            }
        }   
    }  
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

namespace WcfRestFullService
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "ICustomerSevice" in both code and config file together.
    [ServiceContract]
    public interface ICustomerSevice
    {
            [OperationContract]
            [WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json,
                ResponseFormat = WebMessageFormat.Json, UriTemplate = "/GetAllCustomer/")]
            List<CustomerDataContract> GetAllCustomer();

            [OperationContract]
            [WebGet(RequestFormat = WebMessageFormat.Json,
               ResponseFormat = WebMessageFormat.Json,
               UriTemplate = "/CustomerDetails/{Id_Cus}")]
            CustomerDataContract CustomerDetails(String Id_Cus);

            [OperationContract]
            [WebInvoke(Method = "DELETE", ResponseFormat = WebMessageFormat.Json,
                RequestFormat = WebMessageFormat.Json,
                //BodyStyle = WebMessageBodyStyle.Bare,
                UriTemplate = "/DeleteCustomer/{Id_Cus}")]
            String DeleteCustomer(String Id_Cus);

            [OperationContract]
            [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json,
             RequestFormat = WebMessageFormat.Json,
             BodyStyle = WebMessageBodyStyle.Wrapped,
             UriTemplate = "/InsertCustomer/")]
            String InsertCustomer(CustomerDataContract customerDataContract);

            [OperationContract]
            [WebInvoke(Method = "PUT",ResponseFormat = WebMessageFormat.Json,
               RequestFormat = WebMessageFormat.Json,
                   BodyStyle = WebMessageBodyStyle.Bare,
                 UriTemplate = "/UpdateCustomer/")]
            String UpdateCustomer(CustomerDataContract customerDataContract);
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Web;

namespace WcfRestFullService
{
   [DataContract]
    public class CustomerDataContract
    {
        [DataMember]
        public string Id_Cus { get; set; }
        [DataMember]
        public string FirstName_Cus { get; set; }
        [DataMember]
        public string LastName_Cus { get; set; }
        [DataMember]
        public string PhoneNum_Cus { get; set; }
        [DataMember]
        public string Email_Cus { get; set; }
    }
}

Ответы (0 шт):