2012-05-25 46 views
1

我傾向於在數據庫中創建表,然後將它們拖到dbml設計器上以創建我的DataContext。我通常手動在dbml中創建關聯,我應該這樣做,還是應該在數據庫中擁有這些關聯?我問,因爲在MySQL世界中,這些關聯會由外鍵表示,我覺得我在數據庫級別繞過了這些關聯。在dbml文件中創建關聯?

回答

1

在MySQL中創建外鍵更安全。如果您的.NET代碼僅在DBML中,那麼您的.NET代碼將會遵守這些關聯,但是如果您不創建它們,那麼在數據庫級別不會強制執行相同的約束,這意味着直接的DB SQL訪問可能是危險的。

1

我建議像在MySQL中那樣創建外鍵。設計師將會選擇它們。

我在做linq2sql時的做法是我讓設計者儘可能多地提供信息,讓它在發生變化時再次生成dbml。

我將自定義存儲在一個特殊的C#類中。爲什麼?我更加確信db schema和dbml是同步的,所以我可以從相同的模型中推斷出來,並且不考慮任何手動定製到dbml。儘管你可以直接編輯dbml,但它會幫助你更好地診斷問題。