Я пытаюсь заставить EF 4.1 работать с репозиторием, UnitOfWork, отделением сущностей от EF и проверкой.
] Я следовал этому руководству, чтобы получить хорошее разделение моих сущностей POCO от модели EF, и теперь я следую этому руководству по реализации валидации (с IValidatableObject). Решение состоит из:
Но я врезаюсь в кирпичную стену с проверкой:
У кого-нибудь есть здесь для меня указатели? Я разместил код ниже ...
Contacts.Repository.ContactsDbContext.cs:
namespace Contacts.Repository
{
public partial class ContactsDbContext : DbContext
{
public DbSet Contacts { get; set; }
protected override DbEntityValidationResult ValidateEntity(DbEntityEntry entityEntry, IDictionary
Contacts.Entities.Contact.cs:
namespace Contacts.Entities
{
public partial class Contact
{
public string Name { get; set; }
}
}
Contacts.Validation.Contact.cs содержит:
namespace Contacts.Entities
{
public partial class Contact : IValidatableObject
{
public IEnumerable Validate(ValidationContext validationContext)
{
ContactsDbContext contacts = (ContactsDbContext)validationContext.Items["Context"];
//Check if Contact already exists with the same Name
if (contacts.Any(c => c.Name == this.Name))
yield return new ValidationResult("Contact 'Name' is already in use.", new string[] { "Name" });
yield break;
}
}