데이터베이스 모델 위에 모델이 있고 저장소에 개체를 매핑합니다.sql 용 linq에서 factory 클래스를 사용하는 방법?
그러나 분명히 내 GetUsers에서 "새로 선택"을할지 또는 아래에서 구현하는 것처럼 "select factoryreult"를 사용할지에 차이가 있습니다. 런타임에 CreateFromDbModel 메서드에 sql (System.NotSupportedException)에 대한 변환이 없다는 오류가 발생합니다.
이 방법이 있습니까? 어떻게 든 고칠 수 있습니까?
팩토리 메소드를 사용하고자하는 이유는 내가 어떤 의견을 ...
감사를 다른 객체를 실체화하고 한 곳에서 '매핑 코드'를 유지 할 수 있다는 것입니다, 앤더스
public IQueryable<User> GetUsers(bool includeTeams)
{
return from u in _db.sc_Players
where (includeTeams || (!u.aspnet_User.sc_Player.IsTeam))
select UserFactory2.CreateFromDbModel(u);
}
public static User CreateFromDbModel(sc_Player player)
{
return new User
{
Id = player.sc_PlayerID,
FirstName = player.FirstName.Trim(),
LastName = player.LastName.Trim(),
PresentationName = player.FirstName.Trim() + " " + player.LastName.Trim(),
LoginName = player.aspnet_User.LoweredUserName,
IsTeam = player.IsTeam,
Email = player.aspnet_User.aspnet_Membership.Email,
Password = player.aspnet_User.aspnet_Membership.Password
};
}
감사 더글라스와 Rossisdead는 나는 나의 팩토리 메소드를 호출하기 전에 목록에 변환 시도뿐만 아니라 나는 모든 LINQ를 반환해야합니까있다 개체를 데이터베이스에서 가져 오려면 모든 도메인 모델 개체를 구성해야합니다. 필요하지 않은 방법을 찾으려고했습니다. 또한 내 서비스 계층에서 필터링을 수행하고 목록을 다시 다음과 같이 변환해야합니다. 질의 가능. ... –
안녕하세요 Anders, 위의 2 번 편집을 참조하십시오. – Douglas
안녕하세요 더글라스, 당신의 답변을 답글로 표시 하겠지만 데이터 레이어 개체를 서비스 계층에 노출시키는 데이터 레이어에 데이터베이스 linq 개체를 유지하려고합니다. –