0
나는 학생들과 수업 사이에 많은 관계로 많은 SQLite-net Extensions
를 사용했습니다 sqlite-net 확장에서 many to many 테이블 관계를 삭제하는 방법?
public class Students
{
[PrimaryKey, AutoIncrement]
public int StudentId { get; set; }
public string Name { get; set; }
[ManyToMany(typeof(Students_Classes))]
public List<Classes> Classes { get; set; }
}
public class Classes
{
[PrimaryKey, AutoIncrement]
public int ClassId { get; set; }
public string Name { get; set; }
[ManyToMany(typeof(Students_Classes))]
public List<Students> Students { get; set; }
}
public class Students_Classes
{
[ForeignKey(typeof(Students))]
public int StudentFId { get; set; }
[ForeignKey(typeof(Classes))]
public int ClassFId { get; set; }
}
나는 이런 식으로 관계를 추가
:
dbConnection.InsertOrReplace(new Students_Classes { StudentFId = sId, ClassFId = cId });
을하지만 관계를 삭제하고자 할 때
var validRelation = dbConnection.Find<Students_Classes>(x => x.StudentFId = sId && x.ClassFId = cId);
if (validRelation == null)
return;
dbConnection.Delete(validRelation);
오류가 발생하면 cannot delete because it has no PK
가 표시됩니다. 나는 모든 수업을 듣고 한 반의 학생을 배정하고 한 학급을 제거한 다음 그의 반원들과 함께 다시 저장할 수 있습니다. 그러나 성능 문제가있을 수 있습니다.
여러 관계에서 관계를 제거하는 방법은 무엇입니까? 감사.
감사합니다. @ redent84. 'GetWithChildren()'을 호출하면 하위 항목을 추가 한 다음 다시 저장하면 성능 문제가 발생한다고 생각합니다. – user4126589
그게 사실이라면 당신이 옳습니다. 그 중 하나를 삭제하기 위해 모든 요소를로드하는 것은 의미가 없습니다. 어쩌면 API의 편의 메소드를 추가 할 수 있습니다. – redent84
고마워, 좋다. – user4126589