BaseDocument
TextDocument
ExcelDocument
그리고
WordDocument
클래스. 그들은
BaseDocument
에서 물려 받았습니다
. 각 수업에 대한 컬렉션이 있습니다.
BaseDocuments
를 말할 수 있습니다
모음은 일부 장소의 일부 자식 엔터티 모음에서 가치를 얻습니다. 컬렉션 유형이 다르며 일부는 목록이며 다른 하나는
IQuerable
입니다.
그리고 다른 특정 유형.
BaseDocuments
컬렉션은
IQuerable
입니다
일부 하위 엔티티 콜렉션에서 유형을 가져오고 값을 가져옵니다. 다음과 같습니다 :
using (Context context = new Context())
{
var words = context.GetEntities<BaseDocument>().Where(e => e.Name.StartsWith("Word")).ToList(); // type of collection is list
var excels = context.GetEntities<BaseDocument>().Where(e => e.Name.StartsWith("Excel"));
var texts = context.GetEntities<BaseDocument>().Where(e => e.Name.StartsWith("Text"));
var wordsAsQuery = words.AsQueryable();
baseDocuments = wordsAsQuery.Concat(excels).Concat(texts);
}
보시다시피 Concat 방법을 사용하고 있습니다. 하지만 내가
var instaces = baseDocuments.ToList();
할 때
예외가 발생합니다 :
System.InvalidOperationException: 'This method supports the LINQ to Entities infrastructure and is not intended to be used directly from your code.'
연구를 해본 결과 코드를 수정 한 후에는 다음과 같은 예외가 발생합니다.
LINQ error DbUnionAllExpression requires arguments with compatible collection ResultTypes.
모든 자식 컬렉션을 ToList 할 수는 있지만 이해가되지 않으며 성능 문제가 있습니다.
다른 유형의 컬렉션을 IQuerable 컬렉션에 연결하려면 어떻게해야합니까? 가능합니까?
모델에 대한 자세한 내용은 마지막 질문 인 엔티티 인스턴스로드에 1 초 이상 소요
- 답변 # 1
- c# : Entity Framework Core는 다 대다에 새 항목을 추가 할 때 이전 항목을 추가하려고합니다.
- c# : 어떤 유형의 프로젝트를 어떻게 찾을 수 있습니까?
- c# : 연결된 테이블 (하위 범주 및 제품)에 데이터가 나타나지 않습니다.
- c# : RegularExpressionAttribute는 Regex 또는 RegexStringValidator와 다르게 동작합니다.
- c# : EF Core : 부모 엔터티를 추가 및 저장할 수 있지만 자식 엔터티를 전혀 저장하지 못함
- c# : Entity Framework Core-여러 AJAX 호출과 DBContext 충돌
- c# : EF Core를 사용하여 ASP.NET 5에서 dbcontext 스캐 폴딩을 업데이트하는 방법은 무엇입니까?
- c# : 중복 값을 삽입하도록 모델 구성 EntityFramework
- c# : SignInManager.PasswordSignInAsync의 '이 DbContext에 대해 구성된 데이터베이스 공급자가 없습니다.'
- c# : 데이터베이스를 테스트 데이터로 채울 때 예외가 발생하는 이유 (EF Core)
왜 처음
ToList
입니까? Word 문서를 작성하고AsQueryable
를 수행 그들에? LINQ가 데이터베이스 구조에 대한 모든 것을 잊고word
를 처리하게합니다. 메모리 내 컬렉션. 그런 다음Concat
에 알려주십시오. 실제 쿼리를 사용하면 지정한 오류가 발생합니다. 왜 안돼 :