2009-08-03 2 views
3

저는 Linq에서 Sql을 처음 접했습니다. 여러 필드를 조합 한 Entity 클래스에서 단일 읽기 전용 속성을 만드는 것이 좋습니다. 특히 싶습니다. 제목, 이름 및 성을 결합한 이름 필드를 만듭니다.Linq를 통해 SQL에 필드를 결합 할 수 있습니까

.designer.cs 파일을 변경하여 파일을 수정하는 방법을 알 수 있지만이를 만지지는 못한다는 것을 알고 있습니다.

동적 데이터에서 여러 열이 아닌 하나의 열을 얻을 수 있도록이 작업을 시도하고 있습니다.

+0

(댓글에 대한 답글) –

+0

추가 정보를 보내 주셔서 감사합니다. [ScaffoldColumn (true)]'; 나는 다음 번에 그 파일을 버리겠다 .-p –

답변

4

트릭은 partial class을 사용하는 것입니다.

namespace My.Data.Namespace { 
    partial class Employee { 
     public string Foo { 
      get {return Forename + " " + Surname; } // etc 
     } 
    } 
} 

원래 (생성) 클래스 파일과 결합 : 같은 네임 스페이스에 새 .cs 파일을 만들고 은 유형라는 새 클래스를 추가 할 수 있습니다. 이는 생성 된 엔티티 (데이터 컨텍스트 포함)에 추가 기능을 추가하는 일반적인 방법입니다. LINQ-to-SQL에서는 여러 가지 부분 메서드가 정의되어 사용되므로 "부분 메서드"를 살펴볼 수도 있습니다.

한 가지주의 : 당신의 DBML가 MySystem.dbml를 호출하는 경우 다음 은 (아마도 당신의 부분 클래스 용) MySystem.cs 파일을 만들지 않도록; 코드 생성기에 오류가 발생할 수있는 버그가 있습니다. 그냥 다른 이름을 지어 라. 구문이 100 % 인 경우

select new {FullName = x.FirstName + " " + x.Surname}; 

확실하지하지만 아이디어를 체크 아웃 : 당신의 LINQ 선택 문에

+0

나는 해냈다. 그러나 동적 데이터에서 생성 된 그리드에 나타나지 않는다면, 내가해야 할 일이 또 있는가? – Nathan

+0

흠 ... 잘 모르겠습니다. * 다른 * 코드에서 속성을 사용할 수 있다면 동적 데이터가 메타 속성 (유형의 속성이 아닌)을보고 있는지 궁금합니다. 어떤 경우에는 작동시키기가 매우 어려울 것입니다. 또한 단순히 동적 데이터가 읽기/쓰기 속성을 원한다고 할지도 모릅니다 ... 잘 모르겠습니다. –

+0

답을 찾았습니다. [ScaffoldColumn (true)] 속성을 추가해야했습니다. 그리드에 나타납니다. 아름다운 – Nathan

0

, 왜 같은 것을 사용하지 마십시오.

관련 문제