: 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
는 재해로 타격을 입었다 여러 Addresses
의 IList
이 포함되어 있습니다. SimpleRepository
을 사용하여 데이터베이스에 SimpleRepositoryOptions.RunMigrations
을 추가하면 모든 열이 있지만 예상대로 외래 키 열이없는 테이블이 생성됩니다.
Disaster.Addresses
으로 전화 할 때 영향을받는 모든 목록을 얻을 수 있도록이 두 항목을 어떻게 관련 지을 수 있습니까? Addresses
? 이것이 가능합니까 아니면 대신 ActiveRecord를 사용하고 데이터베이스 테이블을 먼저 만들어야합니까? 아니면 재해의 ID에 대한 열을 Address
에 추가해야합니까? 그렇다면이 메소드는 다 대다 관계에 대해 어떻게 작동합니까?
원본 게시물에서 제공 한 코드에서 알 수 있듯이 IList (지연로드를 원하기 때문에 IQueryable로 변환되었습니다)를 Disaster 클래스에 추가했습니다. . 그러나, 나는 당신이 '당신의 주소를 반드시 검색하도록하라'는 의미가 무엇인지 확신하지 못합니다. 이 연결이 데이터베이스에 저장되어 있지 않으면 검색 할 주소를 어떻게 알 수 있습니까? –
데이터베이스와 관련이 없다면 ... 저를 잃어 버렸습니다. 그것이 다른 시스템에 있다면, 내가 필요할 때 그것을 부르십시오. –