RIA 도메인 서비스의 새로운 인스턴스
-
05-07-2019 - |
문제
.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를 속성으로 가지고 있다면입니다.
제휴하지 않습니다 StackOverflow