2009-09-17 3 views
4

Subsonic3에서 SimpleRepository 기능을 사용하려고합니다. 우선 RobC에 큰 감사를 표합니다. Subsonic은 정말로 바위 같고, SimpleRepository에 대한 추가 업데이트를 기다릴 수 없습니다. . 나는 마이그레이션 접근법 (DB로 시작하는 것보다는 개발자/클래스 주도)에 대한 큰 팬이다.아음속 : SimpleRepository 학부모 자녀 관계

여기에 게시물을 보았습니다. Parent and Child object in SimpleRepository 하지만 여전히 약간 혼란 스럽습니다.

내가 정의 된 이러한 클래스를 가지고있는 경우 :

public class Permit { 

     public int PermitID {get; set;} 
     public string Number { get; set; } 
     public DateTime? DateIssued { get; set; } 
     public Product product { get; set; } 
    } 

    public class Product 
    { 
     public int ProductID { get; set; } 
     public string Value { get; set; } 

    } 

을하고 내가 무슨 일을해야 허가증에 대한 데이터를 저장하려면? Permit 클래스에서 ProductID를 정의하고 프로그래밍 방식으로 연결해야합니까? 아니면 아래 코드가 작동해야합니까?

var repo = new SimpleRepository("ECPermit", SimpleRepositoryOptions.RunMigrations); 
      var permit = new Permit(); 
      var product = new Product(); 

      permit.Number = "apermit"; 
      permit.DateAdded = DateTime.Now; 

      product.Value = "this is a product"; 
      repo.Add(permit); 
      permit.product = product; 
      repo.Add(product); 

이것은 허용 및 제품 테이블을 생성하지만 그 사이에는 링크가 없습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 감사합니다.

+1

+1. 우리는 SubSonic 사용 여부를 평가하기 시작했습니다. 한 번은 제 동료가 관련 테이블, 조인 등을 처리하는 방법을 물었습니다. A J의 질문과 아담의 대답은 그것이 적어도 작동한다고 말해줍니다. – David

답변

1

여기에서 알아 두어야 할 것은 외래 키 값을 채워서 관계를 생성해야한다는 것입니다. 그래서 당신의 예제에서 당신이하고있는 일은 허가를 생성하고 그것을 저장하는 것입니다. 그런 다음이 정보를 저장하지 않고 허가서의 ProductID를 설정 한 다음 제품을 저장합니다. 다음과 같이 코드 순서를 바꾸면 ProductID가 올바르게 설정됩니다.

var repo = new SimpleRepository("ECPermit", SimpleRepositoryOptions.RunMigrations); 
var permit = new Permit(); 
var product = new Product(); 

product.Value = "this is a product"; 
repo.Add(product); 

permit.Number = "apermit"; 
permit.DateAdded = DateTime.Now;  
permit.ProductId = product.Id; 
repo.Add(permit); 
+0

+1. 우리는 SubSonic 사용 여부를 평가하기 시작했습니다. 한 번은 제 동료가 관련 테이블, 조인 등을 처리하는 방법을 물었습니다. A J의 질문과 아담의 대답은 그것이 적어도 작동한다고 말해줍니다. – David

+0

나는 permit.Product = product.Id로 의심된다. 실제로는 permit이어야합니다. ProductId = product.Id; –

관련 문제