2012-10-05 5 views

답변

0

불가능하지 않습니다. create model defined function 수 있으며 쿼리에서 사용하지만 그것은 여전히 ​​귀하의 엔티티의 일부가되지 않습니다. 엔티티가 읽기 전용 인 경우 결합 된 열로 데이터베이스 뷰를 생성하고 테이블 대신 매핑 할 수 있습니다. 열을 단일 속성으로 결합하는 것이 쉬운 일이 아닌 주된 이유를 보여줍니다. 읽기 중 자동 연결은 쉽지만 올바른 값을 올바른 열에 저장하기위한 자동 분해는 어렵고 오류가 발생하기 쉽습니다.

쿼리하는 것 외에 다른 속성을 조합해야하는 경우 엔티티 클래스의 다른 부분 부분을 만들고 자신의 계산 된 속성을 추가하기 만하면됩니다. 쿼리에 결합 된 속성이 필요한 경우 모델 정의 함수를 사용하십시오. 여기에 설명 된대로

0

나는이 작업을 수행하는 방법은 Computed Column 통해 : 당신이 계산 된 열을 사용하는 경우

How to make a computed column nullable in SQL Server

당신은 당신의 LINQ 쿼리에서 이러한 열을 사용할 수 있습니다. 예를 들어이 속성이 정말 모델 객체의 일부이기 때문에

var users = Database.Users.Where(u => u.FullName.ToLower().Contains("string")); 

당신은 "엔티티에 LINQ에서 지원되지 않습니다"와 같은 오류를받지 않습니다. 모든 과도한 작업은 데이터베이스 측에서 발생합니다.

물론 부분 클래스에 FullName 속성을 배치하여 사용할 수 있습니다.

이 경우
public string FullName 
{ 
    get { return string.Format("{0} {1}", FirstName, LastName); } 
} 

, 당신은 LINQ 쿼리에서이 속성을 사용할 수 있도록 첫 .ToList() (Database.Users.ToList();)를 호출해야합니다. .ToList()는 모든 Users을 수분 공급/보관합니다. 이것은 바람직하지 않습니다! 나는 당신의 질문을 이해하지 못하는거야하지 않는 한 나는 다음과 같은 것을 유사한 부분 클래스와 있음을했던 생각 Calculated Columns in Entity Framework Code First Migrations

0

:


또한 여기에 설명 년대 FullName 속성 구현을 시도 할 수 있습니다 :

public partial class person 
    { 
     public string name { 
      get 
      { 
       return firstname + " " + lastname; 
      } 
      set{ } 
     } 
    }