2017-09-12 1 views
0

클라이언트 측 계산 열을 쉽게 찾을 수있는 방법을 찾고 있습니다.Entity Framework 핵심 클라이언트 측 계산 열

modelBuilder.Entity<Person>() 
.Property(p => p.DeptName) 
.HasClientComputedColumn((context, entity) =>{   
      return myStaticMap[entity.Id];  
     }); 

는 EF 코어와 함께 할 수 있나요 : 내가 대신 싶은 것이 https://docs.microsoft.com/en-us/ef/core/modeling/relational/computed-columns

이 같은 것입니다 : 이미 가능성 통해 서버에 열을가 계산하는 것입니다?

+2

클라이언트 측에서는 사용자 지정 C# 속성 getter를 사용하지 않는 것이 어떻습니까? –

+0

@MarcinZablocki 글쎄, 나는 약간의 문제를 단순화하고 해결책 솔기가 당신이 말했듯이 (비록 정적지도가 끔찍하지만). 내가 원했던 것은 값이 데이터베이스에는 존재하지 않지만 EF 이벤트에 의해 질의 될 수있는 하드 코딩 된 'DBSet '을 정의하는 것입니다. 이 작업을 수행 할 수 있습니까? –

+0

@MarcinZablocki 당신은 질문에 대답 할 수 있고 대답을 받아 들일 것입니다 (아마도'정적'의존성에 대한 필요성을 제거 할 수 있습니까?). 다른 데이터 소스에서 데이터를 분석하는 GraphQL 스타일을 찾고있었습니다 –

답변

2

클라이언트 측 열만있는 경우 Entity Framework에서 아무 것도 사용할 필요가 없습니다. 나는 이런 식으로, 당신의 Person 클래스를 사용자 정의 속성 게터를 구현하는 제안 :

class Person 
{ 
    //other fields... 

    public string DeptName 
    { 
     get 
     { 
      if(myStaticMap==null || !myStaticMap.Contains(this.Id)) 
      { 
       //initialize your static map or throw exception 
      } 
      else 
      { 
       return myStaticMap[this.Id]; 
      } 
     } 
    } 
} 

내가 DeptName 속성 유형이 string 것으로 가정했지만, 분명 당신은 당신의 요구를 일치하도록 변경해야합니다.

관련 문제