Должен ли я проверить ограничения базы данных в моем доменном объекте? Например. Если поле в базе данных является varchar (500) и является обязательным, должен ли я проверить это в своем коде? Или я должен просто положиться на попытку / поймать.
Это довольно большие накладные расходы, если их можно избежать.
* 1005 т.е. *
//partial method for a class generated by the Entity framework
[MetadataType(typeof(UserMetaData))]
public partial class User
{
}
public class UserMetaData
{
[Required]
[StringLength(500)]
public string FirstName { get; set; }
}
// My domain object tests
// This test in particular will throw an expected exception, saying that the first name cannot be found
[TestFixture]
public class UserTest
{
[Test]
[ExpectedException(typeof(ValidationException), ExpectedMessage = "The FirstName field is required.")]
public void user_should_require_first_name()
{
User user = new User();
user.Id = 0;
user.MiddleName = "x";
user.IsAdmin = true;
user.LastName = "James";
user.Password = "password";
user.Title = "Mr";
user.Username = "jamesbrown";
user.Email = "jamesbrown@somewebsite.com";
TestsHelper.ValidateObject(user);
}
}