[英]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的工作已經過去,但是,我真的不明白我應該在哪里寫用於操作合同的代碼。
有點無法完成圖片。 基本問題是:
一些代碼教程或博客確實會有所幫助。
我通常將我的代碼放置如下(假設我們的測試模型是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.