我現在已經閱讀了相當多的內容,並認爲以下內容不可行,但如果可能,我希望得到專家的確認,並可能就「最佳」解決方法提供建議。覆蓋或隱藏部分類中的屬性
在所有自動生成的linq-to-sql類中,我最終將所有屬性加倍,以在值設置時對值進行檢查,比如說,我有一個帶有Name屬性的Person類,最終做到:
public partial class Person
{
public string Name
{
get { return this._Name; }
set
{
if (!string.IsNullOrEmpty(value))
{
value = value.trim();
this._Name = value.Substring(0, Math.Min(value.Length, 200));
}
else
throw new InvalidOperationException("Person name cannot be blank");
}
}
}
簡單的檢查,以確保當我堅持數據庫的名稱不會超過最大長度。
這意味着我最終會在自動生成的類的幾乎每一個屬性上加倍,並且會造成大量混亂,因爲它們最終會被命名爲類似的東西。
我試圖通過自己的對象表示來添加一個圖層,但在實例化依賴於另一個類的類時遇到了問題......說一個人有公司,你實例化人員及其公司爲公司實例化人員,重新實現公司等...
有沒有一些「好」的方法來做我想用分部類來做的事情?如果不是,那麼最好的替代方案是什麼? 也許繼承每一個部分類並覆蓋屬性?使用OnChange事件執行檢查?
這兩個博客說得很清楚,謝謝。也似乎很清楚,實體框架是現在走的路。應該讓我的多對多關係更容易管理。謝謝! –