2010-02-12 3 views
0

첫째, 나는 내 가장 강한면이 아니라 내 영어를 사과하고 싶습니다.SubSonic, SimpleRepository 및 엔티티 인터페이스

질문하기. 현재 프로젝트에서 내 엔티티에 대한 인터페이스가있어서 머리 속의 Entities에서 Subsonic 속성을 사용할 수 있으며 향후 O/R 매퍼를 완벽하게 전환 할 수 있기를 원합니다. 어쨌든, 내 인터페이스와 Single <>, 모두 <>과 같은 SimpleRepository 클래스를 사용하려고하면 오류가 발생합니다. 오류 메시지가 나타나는 이유는 알고 있지만 해결 방법을 찾으려면 도움이 필요합니다. 오류 메시지 :

System.InvalidCastException : 'Core.DomainObjects.IUser'를 입력 유형 'SubSonic.DomainObjects.User'의 개체를 캐스팅 할 수 없습니다.

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

당신은 내가 데이터를 추가 할 때 작업을 IUSER 순서로 사용자를 만들기 위해 노력했지만 성공하지 않고있다 볼 수 있듯이. 이 작업을하려면 어떻게해야합니까?

내가 음속 생각하지 않는다
Timmie

답변

0

을 주셔서 감사합니다이 상황에서 문제입니다. 실제 클래스

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; 
} 
+0

성가신을, 인터페이스를 포함하는 것을 잊었다. –

관련 문제