2012-02-27 4 views
0

일반적으로 응용 프로그램을 만드는 방법은 먼저 데이터베이스를 만들고 LINQ to SQL을 사용하여 나를위한 클래스를 만드는 것입니다. 그러나 현재 프로젝트에서 상속을 시도하고 싶습니다. 데이터베이스에서 상속을 만드는 것이 가능하지 않다고 생각합니까?SQL Server 및 LINQ의 상속?

따라서 SQL Server/LINQ를 사용하여 상속하는 클래스를 만드는 방법을 궁금해서 데이터베이스에서 데이터를 저장/가져올 수 있습니다. 예를 들어 내가 부모가있는 경우 :

- contact (id, name, telephone number, address, email..) 

그리고 아이들을 :

나는이 클래스에 대한 작업 데이터베이스 연결을 만들 것입니다 방법
- customer(id, title, activity, discount, vat...) 
- supplier (id, title, activity, vat, bankaccount_number, manager, expiration_day...) 
- driver (id, first name, hire_date, fire_date, function, date of birth...) 

? 저는 일반적으로 Visual Studio (LINQ)에서 저를 위해 클래스를 만들 때 클래스를 만드는 데 많은 경험이 없습니다. 나는 각 연락처에 대한 유형을 설정하는 것보다 ContactTypes :

나는 크게 감사합니다 :)

답변

1

Linq-to-Entities (Entity Framework)는이 기능을 기본적으로 제공합니다.

은 당신과 같이 그들을 위해 쿼리를 부모 클래스의 파생어로서 당신의 실체를 디자인하고 만들 수 있습니다

var customers = context.ContactSet.OfType<Customer>(); 
var suppliers = context.ContacctSet.OfType<Supplier>(); 
var drivers = context.ContactSet.OfType<Driver>(); 

부모 클래스와 어린이 클래스는 엔티티 키를 공유 할 수 있습니다. 데이터베이스는 상위 테이블과 하위 테이블 사이에 (1 : 0 또는 1) 관계가 있어야합니다.

나는 Linq-to-SQL과 비슷한 것은 없다고 생각합니다.

+0

잘 모르겠다. 좀 더 폭 넓은 예를 들려 줄 수 있니? 감사합니다 – Schoof

+0

이것은 데이터베이스가 어떻게 보일 것입니까? http://i.imgur.com/48FBr.png – Schoof

+0

'고객'이 '연락처'를 확장하는 경우 customer_id는 contact_id에 대한 외래 키 관계와 고객의 기본 키이어야합니다. 표. 다음은 주제에 대한 훌륭한 연습입니다. http://www.robbagby.com/entity-framework/entity-framework-modeling-table-per-hierarchy-inheritance/ – ken

1

내가 다른 테이블을 만드는 것이 어떤 도움을 주셔서 감사합니다 것입니다. 이 후 추가 테이블을 만들 수 있습니다 : PropertiesToContactTypes 및 이름 가진 다음 새 : PropertiesToContacts. 나는 이것이 매우 간단하고 유용한 방법이라고 생각한다.

복잡한 쿼리를 처리해야하는 어려운 상황에서 프로그램 코드에만 물건을 만들면 어려움을 겪을 수 있습니다. Linq to SQL은 훌륭한 도구이지만 복잡한 쿼리의 경우 저장 프로 시저를 사용해야합니다.

+0

당신이 나에게 여기에서 말하려고하는 것이 확실하지 않습니다. 죄송합니다! – Schoof

+0

ContactTypes (ID, ContactTypeName) 연락 만 편집 할 페이지 (무엇이든, ContactTypeID [ContactTypes에 REF]) 속성 (ID, PROPERTYNAME) PropertiesToContectTypes (ContectTypeID, 부동산 ID) // PropertiesToContacts (ContactID가, 부동산 ID) 나 ' 영어로 나쁘다. 그래서이 모든 것을 설명하기가 어렵다. 그래서 내가 제공 한 예제와 같은 데이터베이스 구조를 설정해 보라고한다. –