내가 예를 들어 개체가 있다고 가정 :Entity Framework/ASP MVC 관계 유효성 검사 : 키 또는 개체를 확인 하시겠습니까?
새로운 도시가 만들어 상황의 몇 가지가 있습니다public class City
{
public int CityId { get; set; }
public string Name { get; set; }
public int StateId { get; set; }
public virtual State State{ get; set; }
}
.
@Html.DropDownListFor(it => it.StateId, ViewBag.States)
2) 상황에서 백 엔드 상태가 새로운 수도 : 상태의 관계가 필요
State newState = context.States.Create();
newState.Name = "North Takoma";
City newCity = context.Cities.Create();
newCity.Name = "Springfield";
newCity.State = newState;
context.States.Attach(newState);
context.Cities.Attach(newCity);
context.SaveChanges();
기존 상태에서 선택하는 관점에서 사용자에 의해, 1) 검증되어야합니다. 질문은 StateID 또는 실제 State 관계 객체에서 유효성을 검사해야합니까? 상기 StateID 채워 아닌 상태 객체 될 제 상황에서
public class CityValidator : AbstractValidator<City>
{
public CityValidator()
{
// this?
RuleFor(it => it.StateID).NotEmpty();
// or this?
RuleFor(it => it.State).NotNull();
}
}
(상당히 유사한 데이터 주석을 사용 상황을 여기 FluentValidation 사용하지만 것); 두 번째 상황에서 그 반대의 경우도 마찬가지입니다.
사용자 정의 논리를 내 유효성 검사기에 입력하여 둘 중 하나를 검사 할 수 있습니다. 그러나, 나는 내 견해에서 눈에 거슬리지 않는 검증 속성을 잃어 버린다. 이 문제에 대한 좋은 DRY 솔루션은 무엇입니까?
명확화를위한 편집 :이 예에서는 StateID (기존 상태의 경우) 또는 State 속성 (새 상태의 경우) 중 하나를 설정하여 도시에 State를 할당 할 수 있습니다. 그렇다면 유효성 검사를 설정하고 내보기에서 입력에 '데이터 - 발 필수'속성을 가져 오는 방법은 무엇입니까?
그래, 나는 그 길로 갔다. 그러나 규칙 집합에서 .When 확장을 사용할 때 신뢰할 수없는 유효성 검사 특성이 설정 될 것이라고 나는 생각하지 않습니다. – enoshixi