Linq 클래스에는 StartTime 및 FinishTime 속성이 있습니다. FinishTime - StartTime으로 계산되는 클래스에 RunTime 속성을 추가하려고합니다. 내 첫 번째 방법은 GET()에서 계산을 매핑되지 않은 속성으로 추가하고 할 :이 잘 처음 일C# 계산 된 열을 Linq로 매핑
[Table(Name = "Log")]
public partial class Log
{
...
[Column(Name = "Start_Time", DbType = "DateTime NOT NULL")]
public DateTime StartTime { get; set; }
[Column(Name = "Finish_Time", DbType = "DateTime NOT NULL")]
public DateTime FinishTime { get; set; }
public int RunTime
{
get { return ((TimeSpan) (this.FinishTime - this.StartTime)).Seconds; }
set { this.RunTime = value; }
}
...
}
,하지만 내가있는 OrderBy에 정렬하려면 열을 사용하려고하면, I 다음 오류가 발생합니다 : " 'TestProject.Models.Log.RunTime'멤버에 SQL에 대한 지원되는 변환이 없습니다." 이 속성은 데이터베이스 열에 매핑되지 않으므로 SQL에서 정렬 할 방법이 없습니다.
나의 다음 방법은 (내가 제대로 사용되지 않을 수 있습니다)에 "표현"속성과 그것에게 열을 시도했다 :
[Column(Expression = "DATEDIFF(ss, Start_Time, Finish_Time) AS RunTime")]
public int RunTime { get; set; }
하지만이 오류가 발생합니다 : "잘못된 열 이름 '런타임 '. " 다시 말하면 RunTime이라는 이름의 Column이 없기 때문입니다.
현재 작업중인 환경에서 데이터베이스를 변경할 수 없습니다. 이 속성을 내 클래스에 추가하고 정렬 쿼리에 사용하는 방법이 있습니까?
감사합니다.
그냥 참고 - RunTime 속성의 setter가 호출하면 StackOverflow 예외가 발생합니다. 접근자를 가져오고 설정하지 않는 것이 좋습니다. –
입력 해 주셔서 감사합니다. 나는 아직도 C#에 다소 익숙하다. – Paul