Subsonic, 간단한 위치 및 엔티티 인터페이스
-
20-09-2019 - |
문제
첫째, 나는 가장 강한 편이 아니라 영어로 사과하고 싶습니다.
질문에. 현재 프로젝트에는 엔터티에 대한 인터페이스가있어 머리 앙트에 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;
}
제휴하지 않습니다 StackOverflow