簡體   English   中英

WCF數據服務中的CRUD操作

[英]CRUD operations in WCF Data Service

我剛剛開始研究oData並開始研究WCF數據服務。 因此,我要問的可能不合邏輯。 我已經挑釁了一些基本的事情,例如從實體框架公開數據並使用客戶端使用它。

現在,我想執行其他CRUD操作(創建,更新,刪除)並執行其他一些業務邏輯,但是問題是我不知道在哪里編寫代碼。 現在,我所擁有的是帶有以下代碼的SVC文件:

public class OdataPOCService : DataService< POCEntities>
    {
        // This method is called only once to initialize service-wide policies.
        public static void InitializeService(DataServiceConfiguration config)
        {
            config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
            config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
        }
    }

我從事WCF的工作已經過去,但是,我真的不明白我應該在哪里寫用於操作合同的代碼。

有點無法完成圖片。 基本問題是:

  1. 可以以及我們執行插入,更新和刪除的方式。
  2. 在哪里編寫業務邏輯。 可以說我想在曝光之前更改日期格式。
  3. 由於沒有wsdl,WCF數據服務可以接收諸如Class和Enums之類的Complex對象嗎?

一些代碼教程或博客確實會有所幫助。

我通常將我的代碼放置如下(假設我們的測試模型是BankAccountModel ):

[ServiceContract]
public interface IBankAccountService {
    [OperationContract]
    BankAccountModel Insert( BankAccountModel item );

    [OperationContract]
    BankAccountModel Update( BankAccountModel item  );

    [OperationContract]
    void Delete(string ID); 

    //... interface of other methods
}

這是服務合同。 公開此內容,描述如何使用您的服務,但不介紹業務邏輯。 然后,您創建一個接口類:

public class BankAccountService : IBankAccountService {
    public BankAccountModel Insert( BankAccountModel item )
    {
        // business logic for insert 
    }

    public BankAccountModel Update( BankAccountModel item  )
    {
        // business logic for update 
    }

    public void Delete(string ID)
    { 
       // business logic for delete
    }
}

這將是您的后端/業務邏輯。 不要暴露此類。 客戶沒有(也不允許)知道這里是什么。

為了傳遞諸如BankAccountModel類的復雜對象,您必須將其定義為DataContract ,並將要序列化的屬性定義為DataMember 簡單的例子:

[DataContract]
public class BankAccountModel {
    [DataMember]
    public string Code { get; set; }
    [DataMember]
    public string Type { get; set; }

    // ...
}

您可以在這里這里閱讀

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM