2011-12-19 82 views
0

我正在製作一個asmx Web服務,並使用LinqToSQL處理數據庫。是否可以在Web服務中公開LinqToSQL生成的類

對於我來說,使用LinqToSQL生成的類作爲參數或Web方法中的返回值似乎很容易。 像這樣:

[WebMethod] 
public OperationResult Meet_ListMeets(string clientToken, out meet[] meets) 
{ 
    ServiceMeet s = new ServiceMeet(sqlCon, clientToken); 
    return s.ListMeets(out meets); 
} 

其中 「相遇」 是LinqToSQL類。 我發現meet類暴露爲WSDL複雜類型,包括所有的依賴關係(例如,其他類可以通過數據庫中的外鍵來滿足)。

主要問題是「以這種方式使用類是否是一種好的做法?」。怎麼樣的安全? 我應該使用包裝類來隱藏我的實體結構嗎?

回答

1

這不是一個好習慣,而且很可能在某個時候遇到問題。更不要說所有額外的東西在電線上的開銷。

我過去所做的就是將一個「inbetween」模型與我需要實際發送的字段進行交互,然後將它們映射回實際的對象。手動映射或使用.NET的許多映射工具包之一進行映射(查看NuGet)。

相關問題