实体字段长度约束

问题描述:

我目前正在使用实体(使用Visual Studio 2008,FW 3.5 SP1)。 我从数据库中创建了我的实体,并且一切都正常,除了不强制对字符串字段的长度约束。 浏览互联网,我发现这是非常正常的(见blog post),并且实体将没有检查的数据发送到数据库,以便发送异常。实体字段长度约束

我知道我可以为我的实体编写部分类,并使用On<Fieldname>Changing方法,但这需要编写相当数量的重复代码。此外,如果我在DB中更改长度,则需要我更改我的代码。

所以我的问题是:是否有一种通用的方式来呢?对于每个具有最大长度的数据类型来说,是否可以检查提供的值是否合适?

+0

我的第一个问题是,如果价值不合适,你会怎么做?如果你打算抛出异常,那么我会说,这有什么意义?你可以让数据库抛出异常。 – CodingGorilla 2010-07-14 12:31:11

+0

是的,这就是我打算做的(并将异常转换为FaultException,以通过WCF)。问题是我读过数据库抛出的异常是一个通用的异常(解释失败的内部文本)。我希望能够根据其类型来处理异常。 – Shimrod 2010-07-14 12:34:46

因为我没有找到一种通用的方法,所以我最终编写了所有On<Fieldname>Changing方法,并制作了一个小型通用验证框架,当某些标准未得到满足时会引发异常。