2014-04-17 7 views
9

저는 Windows Store 앱을 처음 사용하기 때문에 데이터베이스를 사용해야합니다. 나는 sqlite에 정착했고 sqlite-net 패키지를 사용하고있다. 그러나, 나는 두 모델 사이의 m2m 관계를 만드는 방법을 확신하지 못합니다.두 모델 간의 ManyToMany 관계 만들기

class ModelA 
{ 
    [PrimaryKey, AutoIncrement] 
    public int Id { get; set; } 
    public string name { get; set; } 
    <relationship to ModelB> 
} 


class ModelB 
{ 
    [PrimaryKey, AutoIncrement] 
    public int Id { get; set; } 
    public string name { get; set; } 
} 

목록을 사용해야합니까? 또는 바이트 []? 재산이 ModelB으로 제한 될 것을 어떻게 보장 할 수 있습니까?

답변

13

sqlite-net-extensions을 사용할 수 있으며 사용자의 요구에 가장 적합한 ManyToMany 특성이 있습니다. 이것은 웹 사이트에서 사용 된 예입니다.

public class Student 
{ 
    [PrimaryKey, AutoIncrement] 
    public int StudentId { get; set; } 

    public string Name { get; set; } 
    public int Age { get; set; } 

    [ManyToMany(typeof(StudentsGroups))] 
    public List<Group> Groups { get; set; } 

    public int TutorId { get; set; } 
    [ManyToOne("TutorId")] // Foreign key may be specified in the relationship 
    public Teacher Tutor { get; set; } 
} 

public class Group 
{ 
    [PrimaryKey, AutoIncrement] 
    public int Id { get; set; } 

    public string GroupName { get; set; } 

    [ForeignKey(typeof(Teacher))] 
    public int TeacherId { get; set; } 

    [ManyToOne] 
    public Teacher Teacher { get; set; } 

    [ManyToMany(typeof(StudentsGroups))] 
    public List<Student> Students { get; set; } 
} 

public class StudentGroups 
{ 
    [ForeignKey(typeof(Student))] 
    public int StudentId { get; set; } 

    [ForeignKey(typeof(Group))] 
    public int GroupId { get; set; } 
} 
+0

감사합니다. 나는 정말 멍청한 질문 하나를 가지고 있는데, 다운로드 한 파일이 비주얼 스튜디오 프로젝트이므로 내 기존 프로젝트에 추가하는 방법입니다. – SunnySydeUp

+0

불행히도 nuGet 패키지 나 바이너리가 없으므로 빌드해야합니다. –

+0

빌드를 시작하지 않고 프로젝트를 열 수 없습니다. 내가 Visual Studio Express를 사용하고 있기 때문일 수도 있습니다. 좀 더 파고를하고 다른 솔루션을 찾을 수 없거나 구축 할 수 있다면 대답을 수락 할 것입니다. – SunnySydeUp