2011-05-14 2 views
1

외래 키를 추가하고 데이터베이스에 연결하여 C# 등의 데이터를 가져 오는 SQL 쿼리를 수행하는 방법을 알고 있습니다. 그러나 Google에서 오랜 시간 동안 검색 한 결과 C#에서 외래 키와 관련된 기능 (또는 클래스, 메소드, API 등)을 찾을 수 없습니다.C#에서 SQLCE 외래 키에 대한 기능

위로 레일스에 있었을 때 두 테이블에 관계가 있다면 부모 테이블을 통해 자식 테이블에 쉽게 액세스 할 수 있습니다 Teacher [0] .Classes.Last. 그러나 이러한 방법은 C#에서 빠져있는 것 같습니다. 내가 맞습니까?

저는 C#, SQLCE 및 WPF로 작업하고 있습니다.

나는 일대일 관계가있는 두 개의 테이블을 가지고 있습니다. 그러나 참조 키를 포함한 모든 데이터는 수동으로 삽입됩니다 (예 :이 행, "1"삽입, 해당 행 삽입 "5"등) 및 부모 테이블 ID에 해당하는 자식 테이블의 행을 찾으려면 C#에서 if 문을 수행해야합니다.

기본적으로 외래 키는 다른 int 열입니다. 나는 참조가 실제로하는 것을 얻지 못하거나 그냥 명명 규칙 일 뿐인가? 코드의 독자가 참조를보고 관계가 있다는 것을 알게되었지만, 외래 키는 실질적으로 아무 것도하지 않습니다.

답변

1

(쿼리 옵티마이이 정보를 활용할 수 있기 때문에 일부 데이터베이스에서 외래 키는 쿼리 속도를 높일 수 있습니다), 두 개의 테이블이 있다면 쉽게 할 수있는 관계가 Teacher [0] .Classes.Last에 의해 부모 테이블을 통해 자식 테이블에 액세스하지만 이러한 메서드는 C#에서 누락 된 것 같습니다?

Entity Framework 및 기타 많은 ORM과 비슷한 기능을 수행 할 수 있습니다.

기본적으로 외래 키는 다른 int 열입니다. ... 코드의 독자는 참조를보고 관계를 인식하지만 외래 키는 실제로 아무 것도하지 않습니다.

수정 - 데이터베이스를 떠나면 foriegn 키의 값은 중요하지 않게됩니다. 대신 정상적인 것은 중첩 된 객체를 갖는 것입니다. 예를 들어, Address 오브젝트를 포함 할 수있는 Customer 오브젝트를 가질 수 있습니다. Address 객체는 또한 foriegn 키 값을 전달할 수 있지만 일반적으로 C# 코드에서는 LINQ 쿼리와 같은 작업을 수행하지 않는 한이 객체를 사용하지 않습니다. 다시 돌아 오면 foriegn 키 값을 사용합니다. 데이터베이스

0

외래 키는 도메인 모델의 개체 간의 관계를 나타냅니다. 그것은 무결성을 강요합니다. 내가 레일에있을 때

돌아 가기

관련 문제