2

다음 경우에 대해 고려해야 할 사항은 무엇입니까?클래스 계층 구조 정의 VS (자동) 생성 된 탐색 속성

인용문이 있다고 가정 해 보겠습니다.

견적은 특정 계약서와 관련이 있습니다. 나는이 경우에도, 싶습니다 탐색 할 때

내가

Contract = 
    someproperty : int 

Quote: 
    contract : Contract 

그러나 다음과 같은 방법으로 내 클래스를 정의 할 수 하지 내 모델에 존재 할 수 do

myContract.quotes 

일반적으로 이러한 속성은 Entity 프레임 워크 또는 다른 ORM.

그러나 클래스 만 순수 메모리를 사용하는 경우에도, 전체 일반성에 존재하는 탐색에서 정의을 분리하는 질문입니다. 자동으로 그 탐색을 상속 가능한 실용적인 접근 방식은 무엇인가 :

내 질문은 (내가 하나가 정의에 지정된 링크의 부분 집합에서, 탐색 그래프의 전이 폐쇄를 생성에있는 프레임 수도 있겠죠) FSharp의 속성? 난 그냥 사용자, 그리고 프레임 워크 developper 아니, abnd 이것은 매우 낮은 수준의 물건입니다.

[분명히 당신이 견적 브로커에서 제공

  • 수 있습니다 더 복잡한 클래스 계층에 일반화 할 수 있습니다, 입찰의 또는 자연에게, 레벨을 가지고 있으며, 특정 계약 valide입니다.
  • 계약은 특정 성숙도, 예를 들어 2013 년이며 특정 회사를 나타낼 수 있습니다.
  • 회사는 시세, 등, 등 ...]
+0

나는이 문제를 스스로 고치 겠지만, "특정 계약서에 대해 유효한 견적이 무엇인지 알 수는 없습니다." 읽어야합니다. "특정 계약에 대해 견적이 유효하지 않게됩니다"라고 말하는 것이 있습니까? –

+0

이 수정되었습니다. 죄송합니다. – nicolas

답변

2

아마 내가 잘못 이해했습니다. 이 방법으로 이동하는 기능을 추가하기 위해 extension method을 사용할 수 없습니까? 특정 계약에 대한 견적을 얻기 위해 여전히 함수를 호출해야하지만 도우미가 존재할 수 있습니다. 그러면 데이터 제공자에게 해당 연락처에 대한 필터링 된 목록의 목록을 호출 할 수 있습니다.

+0

. 질문의 시점에 프로그래밍을 다시 (다시) 배우면서, 어쨌든 어쨌든 아마도 적합하지 않은 좀 더 일반적인 방식으로 질문을하고있었습니다. – nicolas

1

흠, 흥미로운 질문이 있습니다.

blog post에 따르면 데이터베이스 기반이 아닌 방식으로 엔티티 프레임 워크를 사용할 수 있습니다. 너는 너 자신의 끈기를 다뤄야 할 것이다.

아니면 일반 F # 솔루션으로이 문제를 직접 해결할 수도 있지만 여기서는 EF가 충분하다고 말하고 싶습니다.

+0

실제로 코드 주석을 처리해야하며 "id"가 숨겨져 있어야합니다. 또한 형식에 대한 소스 코드 액세스가 필요합니다. 형식 공급자를 사용하지 않아도됩니다. 이는 '래퍼'를 만드는 것을 의미합니다. 추잡한. – nicolas

+0

사실 Entity Framework조차도 지원하지 않습니다 .... cf 모든 관련 제품을 찾는 매우 기본적인 작업에 필요한 모든 배관 및 코드 .... http://books.google.com/books?id=WdRzgaw5tlQC&pg 실용적이고 말도 안되는 생각 인 것처럼 보이는 = PA198 & lpg = PA198 & dq = entity + framework + transitive + closure & source = bl & ots = xTioCFV08R6pF55v8tj37EQ-LLE & hl = en & sai = gCpRT5tT4rzRBfPW5fwL & ved = 0CCMQ6AEwAA – nicolas