【WCF】WCF以EntityObject為回傳值的注意事項
最近發現了一個問題,假設我有兩個資料表如下:
我使用Entity Framework在Server端建了一個命名空間為DataModel的edmx,然後新增一個WCF服務,程式碼如下:
public DataModel.使用者 GetUser()
{
DataModel.DataEntities db = new DataModel.DataEntities();
return db.使用者.First();
}
結果傳回的內容除了第一筆使用者資料外,它關聯的角色資料也一併傳過來,當我抓的資料表含有多個關聯時,
就會回傳『已超出傳入訊息 (65536) 的訊息大小配額上限。』的訊息,因為回傳的資料太大了。
當初為了方便,沒有另外寫類別,直接用Entity Framework產生的物件做為回傳值,沒想到會出現這個問題,
如果另外寫類別的話,等於Entity Framework的ORM是白做的。
不過這個用法在一般Web使用上是沒問題的,不會把所有關聯到的資料都回傳。