문제

.NET RIA Services 7 월 미리보기를 사용하여 Silverlight 클라이언트와 서버간에 통신합니다. 내 서버에는 Silverlight 애플리케이션을 호스팅하는 ASP.NET 프로젝트가 있습니다. ASP.NET 응용 프로그램에는 Hour라는 테이블이있는 LINQ-to-SQL 데이터 모드가 있습니다. Hour.shared.cs를 만들어 3 개의 속성으로 시간 엔터티를 연장했습니다.

public partial class Hour
{
   public string CustomerName { get; set; }
   public string ProjectName { get; set; }
   public string FullProjectName { get { return this.CustomerName + " - " + this.ProjectName; } }
}

내 도메인 서비스에는 Gethours라는 get-method가 있습니다. LINQ의 디자인으로 인해 시간 엔터티의 새로운 인스턴스를 생성 할 수 없으며 새 엔티티를 통해 새로운 속성의 값을 설정합니다.

var query = from hours in this.Context.Hours
            select new Hour()
            {
               HourID = hours.HourID,
               ProjectName = "Hello World"
            };

시간 만 선택하면 잘 작동하지만 프로젝트 이름과 사용자 지정 이름을 설정해야합니다.

이 문제를 해결하는 방법에 대한 아이디어가 있습니까?

도움이 되었습니까?

해결책

내 대답을 다시 시도하고, 지난번에 나에게 얼어 붙었습니다.

아마도 가장 쉬운 방법은 기능을 사용하는 것입니다.

public Hour PopulateHour(Hour hour)
{
  hour.CompanyName = "xyz";
  hour.ProjectName = "123";
  return hour;
}

그런 다음 LINQ 쿼리에서 이것을 사용할 수 있습니다.

var query = from hour in this.Context.Hours
            select PopulateHour(hour);

이것을 더 쉽게 만들 수있는 한 가지는 이미 시간 수업에서 회사와 projectID를 속성으로 가지고 있다면입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top