문제

이 기사에 따르면 :http://subsonicproject.com/docs/3.0_migrations

Bottom line: if you're a developer that is concerned about database design,
migrations might not be for you.

좋아, 괜찮습니다. 데이터베이스를 단순히 비즈니스 로직을 포함하지 않는 지속적인 데이터 저장소로 취급 할 수 있습니다. 다시 말해, 영광스러운 텍스트 파일.

내가하는 방법을 모르는 것은 두 객체를 함께 관련시키는 것입니다. 예를 들어이 두 클래스를 예로 들어 보겠습니다.

public class Disaster
{
    public int DisasterId { get; set; }
    public string Name { get; set; }
    public DateTime? Date { get; set; }
    public IList<Address> Addresses { get; set; }
}

public class Address
{
    public int AddressId { get; set; }
    public string WholeAddressHereForSakeOfBrevity { get; set; }
}

Disaster 포함 IList 다중 Addresses 그것은 재난에 맞았습니다. 내가 사용할 때 SimpleRepository 이것을 데이터베이스에 추가합니다 SimpleRepositoryOptions.RunMigrations, 모든 열이있는 테이블을 생성하지만 예상대로 외래 키 열은 없습니다.

내가 전화 할 때이 두 가지를 어떻게 연관시킬 것인가 Disaster.Addresses, 나는 영향을받는 모든 목록을 얻습니다 Addresses? 이것이 가능합니까 아니면 대신 ActiveRecord를 사용하고 데이터베이스 테이블을 먼저 만들어야합니까? 아니면 재난의 ID에 대한 열을 추가해야합니까? Address? 그렇다면이 방법은 어떻게 다수의 관계에서 작동합니까?

도움이 되었습니까?

해결책

가능합니다 - 당신은 단지 손으로 할 수 있습니다. "주소"라는 재난에 속성을 추가하고 ilist <>로 만드십시오 (또는 게으른 부하를 원할 경우 문제를 해결할 수 있습니다). 재난을 회수 할 때 주소를 검색하십시오.

일종의 "매뉴얼"이지만 그게 아이디어입니다. 나는 나중에 릴리스를 추진하기를 바라는 이에 대한 향상을 위해 노력하고 있습니다.

그리고 왜 내가 왜 처음에 그것을하지 않았는지 물어보기 전에 :) 부모/자녀 관계를 기반으로 많은 또는 1 마리를 사용해야하는지 모르기 때문입니다. 당신의 예에서, 나는 그것이 아마도 1에서 많은 사람들이라고 생각하지만, 주소와 재난 (특히 플로리다)에 대해 내가 아는 것을 감안할 때 아마도 많은 사람들이 될 것입니다.

결론 - subonic은 이것을 어떻게 알 수 있습니까? 우리는 "양방향성"에 대한 두 개체를 모두 내성 할 수 있습니다. 즉, 주소가 많은 것보다 많은 재난을 가지고 있다면 (명백하다), DDD를 좋아한다면 그것은 행복하지 않습니다.

나는 문제를 강요 할 어떤 유형의 재정의로 그 규칙에 기대고 있습니다. 이것에 대한 당신의 생각은 환영합니다 :)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top