#asp.net-mvc #llblgenpro #data-annotations
#asp.net-mvc #llblgenpro #данные-аннотации
Вопрос:
Я просто пытаюсь объявить частичные классы для созданных инструментом классов LLBLGenPro (частичных), чтобы я мог использовать DataAnnotation для целей проверки. Однако, похоже, здесь что-то не работает.
Вот как выглядит мой код :
namespace MyApp.DataLayer.EntityClasses
{
[Serializable]
public partial class LoginEntity : CommonEntityBase, ISerializable
{
.....
}
}
И для примечаний к данным …
namespace MyApp.DataLayer.EntityClasses
{
[MetadataType(typeof(LoginEntityValidation))]
public partial class LoginEntity
{
}
public class LoginEntityValidation
{
[Required(ErrorMessage = "Required !")]
public string Username { get; set; }
}
}
// Это приводит к ошибкам во время компиляции «MyApp.dataLayer.Классы объектов.LoginEntity’ не содержит конструктора, который принимает 1 аргумент» и так далее.
Есть идеи, как заставить это работать?
Заранее спасибо!
Ответ №1:
Вы не должны использовать свои классы сущностей в представлениях. Вы должны использовать классы ViewModel и поместить туда проверку. Для преобразования entity-> viewmodel вы можете использовать AutoMapper
Комментарии:
1. Спасибо за ваш ответ! Хорошо, я настроил автоматическое отображение. Но как мне сделать это для проверки моих основных объектов? В принципе, я хочу прикрепить атрибуты проверки к моим основным объектам, чтобы проверка могла выполняться в любом месте, независимо от какого-либо конкретного уровня. Однако это отлично работает с EntityFramework.
2. Я думаю, что смешивать валидацию и бизнес-логику — плохая идея. Вы должны применить логику проверки к пользовательскому вводу, который инициирует изменения данных, и сохранить вашу модель домена для бизнес-логики