2013-11-21 38 views
1

我是Linq To SQL的新手。我正在使用SQLMetal生成類。該工具爲表格的表格和列生成Get和Set屬性。Linq to SQL:如何生成Public Get和Protected Set屬性

在我的應用程序中,Data對象只能在Data Accessor程序集中更新,但是由於對象需要訪問數據,因此該對象將被傳遞給許多其他程序集。我不希望數據被外部程序集修改。我希望他們使用GET屬性來訪問數據並擁有私人/內部設置。

我該如何做到這一點?任何標準模式/做法?

在此先感謝!

回答

2

您需要爲每個表類添加另一個不可變類,您可以在其中投影數據。 Linq to SQL沒有按照你所描述的設置進行設置,SQLMetal也沒有。

您可以做的另一件事是修改these T4 templates以實現您描述的行爲。還有其他的選擇; micro-ORM就像Dapper或Massive可能更適合你的情況。

進一步閱讀
LINQ to SQL and immutability

+0

感謝您的回覆羅伯特。 最初我正在考慮自己開發容器類的傳統方法,並使用存儲過程來選擇/插入/更新數據。這樣我就可以完全控制課程的可訪問性。我可以創建方法來插入/更新數據,並且只有getter屬性,以便數據本身是隻讀的。 在這種情況下什麼是最好的選擇 - LINQ的自定義實現還是數據容器的傳統方法? –

+0

我想說這取決於你需要多少班。 –