다음은 장면 뒤에 숨어있는 것들입니다. 위의 엔티티와 관련된 DbSet에 포함 된 DbSet에 필터를 추가 하시겠습니까?
public class User : BaseTransactionModel
{
public Guid UserId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class Transaction
{
public int TransactionId { get; set; }
public string TransactionName { get; set; }
public int TransactionHistoryId { get; set; }
public virtual TransactionHistory TransactionHistory { get; set; }
}
public class TransactionHistory
{
public int TransactionHistoryId { get; set; }
public DateTime CreatedDateTime { get; set; }
public Guid UserId { get; set; }
public int TransactionId { get; set; }
public virtual ICollection<User> Users { get; set; }
public virtual ICollection<Transaction> Transactions { get; set; }
}
public class BaseTransactionModel
{
public int TransactionHistoryId { get; set; }
public int TransactionId { get; set; }
public virtual TransactionHistory TransactionHistory { get; set; }
public virtual Transaction Transaction { get; set; }
}
, 내가 지정한 날짜에
사용자에서 모든
거래를 얻기 위해 노력하고 있어요.
:
Context.Transaction
.Include(t => t.User)
.Include(t => t.TransactionHistory)
...
나는 경우 거래 내역 엔티티의 날짜에서 거래를 필터링 절을 추가하고 싶었 :
는 그래서 거래 DbSet에 사용자 및 TransactionHistory 모두를 포함하여 시도
Context.Transaction
.Include(t => t.User)
.Include(t => t.TransactionHistory)
.Where(t => t.TransactionHistory.CreatedDateTime <= StartDateFilter && t.TransactionHistory.CreatedDateTime >= EndDateFilter)
하지만 그렇게 할 수 없었습니다. TransactionHistory는 엔터티 목록 (또는 호출 된 항목)이기도합니다.
달성하려는 솔루션을 얻을 수있는 방법은 무엇입니까?
PS : 저는 EF를 처음 접했고 제목이 오도 될 수 있습니다. 그렇다면 언제든지 업데이트하십시오.
그들이에되어있는 것처럼 당신의 모델 클래스가 보이지 않습니다. 관계를 클래스에서 정의해야하는 방식 (탐색 속성 포함)을 연구합니다. – Nikolaus
@Nikolaus 위의 샘플 수업에 대한 불만 사항을 수정했습니다. 제안을 주셔서 감사합니다. 나는 그것에 대해 살펴 보겠습니다. –