2009-12-19 2 views
1

나는 POCO 클래스와 내 DB 사이에 Linq-To-Sql 매핑을 가지고 있습니다. 간단한 scalr 값보다 약간 복잡한 구조를 나타내는 클래스에 속성을 추가 할 수 있기를 원합니다.Linq-To-SQL 테이블 매핑을 병합하는 방법은 무엇입니까?

예를 들어 두 개의 간단한 스칼라 값이 들어있는 사용자 정의 struct 유형이 있습니다. 이 테이블을 다른 것으로 만들고 속성으로 FK를 추가하고 싶지 않습니다. Linq-to-SQL XML 매핑 파일을 사용하여이 구조체의 속성을 매핑 할 수 있습니까? 예를 들어

,

public class Foo 
{ 
    public string Blah { get; set; } 
    public Bar Yada { get; set; } 
} 

public struct Bar 
{ 
    public int A { get; set; } 
    public int B { get; set; } 
} 

어떻게 BlahYada.A, 그리고 Yada.B 모두가 Foo 테이블에서 열으로 유지됩니다 지정 것인가?

이 작업을 수행 할 수도 있습니까?

답변

1

이것은 정말 불충분하지만, L2S를 고수하면 내가해야 할 일처럼 보일 수도 있습니다.

public class Foo 
{ 
    public string Blah { get; set; } 

    public int Bar_A { get; set; } 
    public int Bar_B { get; set; } 

    /* not mapped to DB */ 
    public Bar Yada 
    { 
     get { return new Bar { A = this.Bar_A, B = this.Bar_B }; } 
     set { this.Bar_A = value.A; this.Bar_B = value.B; } 
    } 
} 

public struct Bar 
{ 
    public int A { get; set; } 
    public int B { get; set; } 
} 

물론, 실제 코드에서, 나는 아마 같은 내 진짜 Bar 유형은 단순히 값을 포함하는 이상의 의미를 가지고 있기 때문에 반복해서 가치를 창출되지 않았 음을 만들 것입니다.

1

이 작업을 수행하려면 .NET4의 Entity Framework가 필요하다고 생각합니다. 복합 유형 및 엔티티에 대해서는 this blog post을 참조하십시오.

+0

팁 주셔서 감사합니다. 나는이 작은 응용 프로그램에 대해 LINQ-to-SQL을 고수하기를 정말로 바라고 있습니다. 내가 EF로 뛰어 올랐다면, 나는 정말로 뒤로 물러나서 NHibernate와 다른 것들을 봐야만했다. – mckamey