문제

첫째, 나는 가장 강한 편이 아니라 영어로 사과하고 싶습니다.

질문에. 현재 프로젝트에는 엔터티에 대한 인터페이스가있어 머리 앙트에 Subsonic 속성을 사용할 수 있으며 향후 O/R Mapper를 원활하게 전환 할 수 있기를 원합니다. 어쨌든, 나는 싱글 <>, all <> 등과 같은 인터페이스와 단순한 위치 클래스를 사용하려고 할 때 오류가 발생합니다. 오류 메시지를받는 이유를 알고 있지만 주변을 돌아 다닐 수있는 방법을 찾는 데 도움이 필요합니다. 에러 메시지:

System.InvalidCastException : 'subsonic.domainobjects.user'유형의 객체를 캐스트 할 수 없습니다.

암호:
public IUser FindById(int id) {
var user = _repository.Single<User>(x => x.Id == id);
return (IUser)user;
}

보시다시피 나는 데이터를 추가하고 싶지만 성공하지 못했을 때 사용자를 IUSER Order로 만들려고 노력했습니다. 이 일을하기 위해 무엇을 할 수 있습니까?

고맙습니다,
Timmie

도움이 되었습니까?

해결책

나는이 상황에서 Subsonic이 문제라고 생각하지 않습니다. 이 코드는 다음과 같습니다.

namespace Core.Objects
{
    public interface ICustomer
    {
        int CustomerID { get; set; }
        string Name { get; set; }
    }

}

실제 클래스의 코드 :

namespace Business.Entities
{
        public class Customer: Core.Objects.ICustomer
        {
            public int CustomerID { get; set; }

            [SubSonicStringLength(50)]
            public string Name { get; set; }
        }
}

마지막으로 고객을 얻을 수있는 기능 :

private static ICustomer CustomerByID(int id)
{
      var repos = new SimpleRepository("Test", SimpleRepositoryOptions.None);
      var customer = repos.Single<Customer>(c => c.CustomerID == id);

      return (ICustomer) customer;
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top