2010-01-20 19 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. 
    } 
} 
相关问题