0
'Personen'테이블에 대해 linq 쿼리를 실행하고 'Leners'테이블에 가입하려고합니다.
'Leners'테이블에서 가능한 경우 가장 최근 항목을 원합니다.LINQ가 최근 날짜가 람다에 합류합니다
select p.*, l.*
from dbo.Personen p
left outer join dbo.Leners l on l.LenerId =
(select top 1 LenerId
from dbo.Leners lt
where lt.PersoonId = p.PersoonId
order by lt.Vanaf desc)
가 어떻게 LINQ하여이 작업을 수행 할 수 있습니다 :이 같은 것을 할 것 SQL에서
? 선택에 따라 다르므로 람다 식에서이 작업을 수행하고 싶습니다. 그러나
var query2 = from p in dbo.Personen
let l = dbo.Leneren
.OrderByDescending(lt => lt.Vanaf)
.FirstOrDefault(lt => lt.PersoonId == p.PersoonId)
select new { p, l }
, 당신은 당신의 query
에 다시 할당 할 수 없습니다 :
using (var db = new DbContext())
{
var query = from p in db.Personen
select p;
if (someSelection != null)
{
query = ?
}
}
이
이 테이블은 다음과 같습니다처럼 (첫번째 EF 코드)[Table("Personen")]
public class Persoon
{
[Key]
public int PersoonId { get; set; }
[StringLength(50)]
[Required]
public string Naam { get; set; }
}
[Table("Leners")]
public class Lener
{
public int LenerId { get; set; }
public int? PersoonId { get; set; }
[ForeignKey("PersoonId")]
public virtual Persoon Persoon { get; set; }
public DateTime Vanaf { get; set; }
}
Person (데이터베이스에 매핑되지 않음)에 Lener 유형의 추가 속성을 추가 할 수 있습니까? – r03
예, 가능합니다. – MarcinJuraszek
어떻게 할 수 있습니까? (in lambda) – r03