2010-01-20 21 views
0

我正在構建一個asp.net mvc應用程序供用戶輸入作文比賽。我在sql server 2005中有一個Essay表。我通過拖動服務器資源管理器中的表格來創建域模型,並將佈局保存爲我所命名的DAL.dbml。使用.dbml設計器時,應將模型特定的代碼放在哪裏?

我現在試圖使用Steven Sanderson在Pro ASP.NET MVC Framework的第11章中提到的方法在業務層中實現輸入字段驗證。但是,作者並沒有像我一樣創建自己的模型,所以我對於在哪裏放置特定於模型的代碼感到不知所措。

我認爲把它放到自動生成的DAL.designer.cs文件中,但這似乎有問題。

我也試過創建一個新的類,EssayRequired.cs,我在那裏做了EssayRequired擴展論文。這幾乎奏效。

它成功顯示了所有的驗證錯誤。

但是,當談到時間居然保存記錄:

EssayTable.Context.Refresh(RefreshMode.KeepCurrentValues, essay); 
EssayTable.Context.SubmitChanges(); 

我得到這個錯誤:

類型「DomainModel.Entities.EssayRequired」不是映射爲一個表。

有關我現在應該做什麼的任何想法?有沒有更好的地方可以放置域特定的代碼,如果數據庫表發生更改,這些代碼將不會被清除,我必須刪除並重新拖動該表。

或者有沒有辦法告訴應用程序,EssayRequired對象應該在Essay表中登陸?

謝謝,斯科特

回答

0

您可以在相同的命名空間的dbml文件創建一個partial Essay class

public partial class Essay 
{ 
    partial void OnCreated() 
    { 
     // handle additional stuff on creation, for instance. 
    } 
} 
相關問題