2010-08-23 3 views
3

Linq와 SQL 사이의 차이점과 Linq와 같은 Entity 프레임 워크 사이에는 SQL이 일대일 매핑이며 EF는 many to many 매핑과 많은 매핑이 있으며 Entity Framework vs LINQ to SQLlinq to sql과 엔티티 프레임 워크 간의 차이점

그러나 여기서는 EF와 Linq를 SQL에 대해 묻습니다. 엔티티를 먼저 생성 한 다음 테이블 또는 다른 방법을 생성하고 두 가지 방법의 장점과 부정적인 점을 생성합니까? EF에는 다중 테이블 형식에서 상속되고 DB에 어떤 것도 나타내지 않는 비즈니스 엔터티가있을 수 있습니다. Linq와 Entity가 EF와 다른가요?

질문이 명확하지 않거나 잘못 묻는 경우 알려주십시오. 선배 들께 감사드립니다.

답변

2

"프로덕션"릴리스의 경우 EF & L2S는 클래스를 생성하기 전에 데이터 모델 (읽기 : 데이터베이스 스키마)이 있어야합니다. 먼저 클래스를 생성 한 다음 DB를 생성하는 기능은 최근에 ScottGu blogged 인 EF4 CTP의 형태로 제공됩니다.

여러 테이블을 반영하는 단일 엔티티까지 : 나는 현재 이것이 일대일 관계라고 생각합니다 : 1 table = 1 Entity.

+0

감사합니다. Allen, Yes EF4는 두 가지 방법으로 모두 수행 할 수 있습니다. 새로운 프로젝트를 시작할 때 어느 것을 선호해야합니까? 그리고 왜. – Praneeth

+0

Microsoft에 따르면 .NET 4.0을 수행 할 때 EF4가 O/RM을 수행하는 데 선호되는 솔루션입니다. 많은 새로운 기술이 EF (예 : WCF Data Services) 위에 배치되며 Microsoft는 여전히 L2S에서 버그를 수정하지만 더 이상 개발되지는 않습니다. 또는 그들이 그것을 부른다. 완료되었습니다 ;-) – Steven

1

linq에서 SQL로 데이터베이스를 만든 다음 가져 와서 응용 프로그램을 빌드하면 개체가 만들어집니다.

첫 번째 MVC를 배울 때 EF로 바보짓을하기 시작했다. 코드로 작업하기 시작한 시점에서 linq를 SQL에 사용했다. 두 가지 모두 linq이기 때문에 linq 쿼리에는 실제 차이점이 없다. 내가 말할 수있는.

+0

확실히 차이가 있습니다. 특히 L2S와 EF3.5 사이. 예를 들어 EF3.5는'Single'과'SingleOrDefault'를 지원하지 않습니다. 'Contain'메소드가있는 쿼리를 어떻게 변환하는지는 알지 못합니다 (예 :'ids.Contains (c.Id)가 c를 선택하는 db.Customers에서'from c '). 이 외에도 L2S의 성능과 가독성은 훨씬 뛰어납니다. 이 모든 것은 EF4로 고정되어있었습니다. – Steven

2

EF 4 또는 추가 기능이 있다고 생각합니다. 먼저 모델을 만들고 DB 스키마를 생성 할 수 있습니다. EF 4 이전에는 Linq-to-SQL을 사용하여 DB로 시작하고 모델을 매핑해야합니다.

+0

Taylor에게 감사의 말을 전합니다. – Praneeth

+0

"선호 접근법"이 확실하지 않습니다. 이미 DB가 있다면, Linq 도구를 사용하여 코드로 모델링 할 수 있습니다. 완전히 새로운 프로젝트를 시작하고 DB를 가지고 있지 않다면 아마도 코드 첫 번째 접근 방식이 더 좋을 것입니다. – taylonr

+0

사실 : LINQ to SQL의'DataContext' 클래스는 데이터베이스를 빌드 할 수있는 CreateDatabase 메소드를 포함합니다 모델에서. L2S에는 EF4 디자이너와 마찬가지로 SQL 문을 생성하는 기능이 없습니다. 그러나'Log' 속성을 사용하면 꽤 가까워 질 것입니다. – Steven