Asp.net mvc 使用.dbml设计器时,将特定于模型的代码放在何处?

Asp.net mvc 使用.dbml设计器时,将特定于模型的代码放在何处?,asp.net-mvc,linq-to-sql,Asp.net Mvc,Linq To Sql,我正在构建一个asp.NETMVC应用程序,供用户参加作文比赛。我在SQLServer2005中有一个论文表。通过在服务器资源管理器中的表上拖动并将布局保存为DAL.dbml,我创建了域模型 我现在正试图使用Steven Sanderson在第11章中提到的方法在业务层实现输入字段验证。但是,作者并没有像我一样创建他的模型,所以我不知道将模型特定的代码放在哪里 我考虑将其放入自动生成的DAL.designer.cs文件中,但这似乎有问题 我还尝试创建一个新的类,EssayRequired.cs,

我正在构建一个asp.NETMVC应用程序,供用户参加作文比赛。我在SQLServer2005中有一个论文表。通过在服务器资源管理器中的表上拖动并将布局保存为DAL.dbml,我创建了域模型

我现在正试图使用Steven Sanderson在第11章中提到的方法在业务层实现输入字段验证。但是,作者并没有像我一样创建他的模型,所以我不知道将模型特定的代码放在哪里

我考虑将其放入自动生成的DAL.designer.cs文件中,但这似乎有问题

我还尝试创建一个新的类,EssayRequired.cs,在那里我制作了EssayRequired扩展文章。这几乎奏效了

它成功地显示了所有验证错误

但在实际保存记录时:

EssayTable.Context.Refresh(RefreshMode.KeepCurrentValues, essay);
EssayTable.Context.SubmitChanges();
我得到了这个错误:

类型“DomainModel.Entities.EssayRequested”未映射为表

我现在该怎么办?有没有更好的地方来放置特定于域的代码,如果db表发生更改,我必须删除并重新拖动该表,这些代码就不会被删除

或者有没有办法告诉应用程序EssayRequired对象应该放在文章表中


谢谢,Scott

您可以在与dbml文件相同的命名空间中创建一个
部分文章类

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