我正在构建一个asp.net mvc应用程序,供用户参加征文比赛。我在sql server 2005中有一个Essay表。我通过拖动服务器资源管理器中的表并保存布局来创建我的域模型,我将其命名为DAL.dbml。
我现在正尝试使用Steven Sanderson在Pro ASP.NET MVC Framework第11章中提到的方法在业务层中实现输入字段验证。但是,作者没有像我那样创建他的模型,所以我不知道在哪里放置我的模型特定代码。
我考虑将它放入自动生成的DAL.designer.cs文件中,但这似乎有问题。
我还尝试创建一个新类EssayRequired.cs,在那里我让EssayRequired扩展了Essay。这几乎奏效了。
它成功显示了所有验证错误。
但是到了实际保存记录的时候:
EssayTable.Context.Refresh(RefreshMode.KeepCurrentValues, essay);
EssayTable.Context.SubmitChanges();
我收到了这个错误:
“DomainModel.Entities.EssayRequired”类型未映射为表格。
关于我现在该做什么的任何想法?如果db表发生更改并且我必须删除并重新拖动表,是否有更好的地方可以放置特定于域的代码?
或者有没有办法告诉应用程序EssayRequired对象应该落在Essay表中。?
谢谢,斯科特
答案 0 :(得分:0)
您可以在与dbml文件相同的命名空间中创建partial Essay class
。
public partial class Essay
{
partial void OnCreated()
{
// handle additional stuff on creation, for instance.
}
}