嗨,我只是學習WCF,我正在嘗試在我正在開發的一個虛擬項目上實現WCF服務,而我正在做這個工作。以正確的方式實現wcf服務
我的項目中包含有一個實體框架資源庫是resposible用於在database accesing數據是怎樣的模式和界面看起來像一個數據訪問項目:
public partial class BookModel
{
public int Id { get; set; }
public string Name { get; set; }
public string Author { get; set; }
public string Description { get; set; }
public DateTime PublicationDate { get; set; }
public int CategoryId { get; set; }
public decimal Price { get; set; }
public string BookUrl { get; set; }
}
public interface IBookRepository
{
IEnumerable<BookModel> GetBooks(int pageNumber, int numberOfBooksOnPage);
IEnumerable<BookModel> GetBookByCategory(int categoryId, int pageNumber, int numberOfBooksOnPage);
BookModel GetBookById(int bookId);
int CountBooks();
int CountBooksByCategory(int categoryId);
void AddBook(BookModel book);
void UpdateBook(BookModel book);
void DeleteBook(int bookId);
}
現在,當我執行WCF服務我必須定義服務對照和數據契約。事情是,這兩個與我的模型和存儲庫完全相同,所以我不確定要做什麼。
這是我迄今爲止,但我不知道這是正確的方式:
[DataContract]
public class Book
{
[DataMember]
public int Id { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public string Author { get; set; }
[DataMember]
public string Description { get; set; }
[DataMember]
public DateTime PublicationDate { get; set; }
[DataMember]
public int CategoryId { get; set; }
[DataMember]
public decimal Price { get; set; }
[DataMember]
public string BookUrl { get; set; }
}
[ServiceContract]
interface IBookService
{
[OperationContract]
IEnumerable<Book> GetBooks(int pageNumber, int numberOfBooksOnPage);
[OperationContract]
IEnumerable<Book> GetBookByCategory(int categoryId, int pageNumber, int numberOfBooksOnPage);
[OperationContract]
Book GetBookById(int bookId);
[OperationContract]
int CountBooks();
[OperationContract]
int CountBooksByCategory(int categoryId);
[OperationContract]
void AddBook(Book book);
[OperationContract]
void UpdateBook(Book book);
[OperationContract]
void DeleteBook(int bookId);
}
這是一個好的IDEEA移動的模型和信息庫到WCF服務?
或者我應該在我的wcf項目中爲這兩個類創建重複項,只調用存儲庫中的方法?