2011-01-25 3 views
6

가능한 빨리 프로젝트의 프로토 타입을 만들고 실행하기 위해 LINQ to SQL을 사용하여 데이터 지속성을 유지했습니다..NET : LINQ에서 SQL로 Entity Framework로 변환

이제 프로젝트가 성숙해졌으며 LINQ to SQL과 함께 동시성 제한이 있습니다. 진정한 ORM이 아니거나 기업용으로 사용 된 것이 아니기 때문에 모든 LINQ와 SQL 작업을 Entity Framework 지속성으로 바꾸고 싶습니다.

여기에는 어떤 내용이 포함되어 있습니까? 내 LINQ to SQL 작업 중 일부를 EF 용으로 다시 작성할 수 있습니까? 처음부터 EF로 다시 시작해야합니까? 어디서부터 시작해야합니까? 유용한 링크 또는 조언?

+3

"사실 ORM이 아니기 때문에 기업용으로도 사용되지 않았습니다."- Stackoverflow는 L2S를 사용하여 만들어졌습니다. –

+1

@geoff와 마찬가지로 SO는 L2S를 기반으로하므로 기업에서 확실히 사용할 수 있습니다. 관심 대상이되는 것은 동시성 제한 사항입니다. 당신이 다른 ORM 도매로 옮길 필요없이 그것들을 해결하는 것을 도울 수있는 여기에 제안 된 관점이있을 것입니다. – casperOne

+0

Ok.stackoverflow는 SQL에 linq을 사용하여 빌드되었으며이 프로젝트를 엔터프라이즈 프로젝트에 사용할 수 있습니다. –

답변

3

많은 사람들이 동일한 전환을 수행하고 있습니다. 여기에 변환을 수행하는 데 사용할 수있는 템플릿이 있습니다. http://blogs.msdn.com/b/efdesign/archive/2009/08/13/linq-to-sql-to-entity-framework-conversion-template.aspx

+1

"많은"사람들이이 변환을 수행하는 방법이 명확하지 않습니다. 코멘트에서 아래로 스크롤하면 "이 프로젝트에 대한 추가 투자를 정당화하기에는 아직 관심이 없었지만 지금까지 관심이 있었지만 ..." – DOK

+0

이것은 작동하지 않습니다. – Thea

+0

해당 템플릿의 업데이트 된 버전이 있습니까?3 세이므로 사용에 의문이 생깁니다. – Zack

1

이것은 매우 어려운 문제이며 내가 사람들에게 추천 한 주된 이유 중 하나는 꽤 오래 LinqToSql을 피하는 것입니다. Microsoft는 LinqToSql을 사용하는 사람들을 원하지 않습니다.

당신이 할 수있는 가장 좋은 방법은/할 수있는 경우 코드를 재사용하는 것입니다 (Linq 쿼리 중 일부는 자동으로 하나를 번역 할 수 있지만 확실하지는 않습니다).

LinqToSql은 사실이지만 기능이 좋지 않은 ORM입니다. LinqToSql은 고급 ORM 기능을 필요로하지 않는 사용자가 엔터프라이즈에서 사용할 수 있으며 사용됩니다.

(LinqToSql에서 EntityFramework로 "업그레이드"하려고하는) 유일한 길은 아니지만이 종류를 지원하는 훌륭한 툴링에 대한 시장의 필요성이있는 시점은 분명하지 않습니다. 마이그레이션.

10 년 넘게 2 년마다 데이터 액세스가 바뀌는 Microsoft의 방향에 비추어 볼 때 Hibernate를 Entity Framework의 대안으로 고려할 수 있습니다 (Microsoft의 "sunsetting"Entity Framework에 대해 걱정할 경우) LinqToSql에).

0

일종의 자동 변환이 가능한지 의심 스럽습니다. 차이점은 거의 없습니다. 최악은 스토어드 프로 시저를 스칼라 반환 값으로 호출하는 방법입니다. EntityFramework는 값을 반환하지 않지만 영향을받는 행 수는 반환합니다. 이를 위해서는 T-SQL을 변경해야합니다. 이것은 어떤 템플리트로도 수행 할 수 없습니다. 일부 LINQ2SQL 쿼리는 EntityFramework에서 작동하지 않으므로 변경해야합니다. 복수화에는 성가신 차이가 있습니다. EF는 너무 영리 해 지려고 노력합니다. 테이블 UserInfo는 L2SQL UserInfo와 같이 UserInfo로 복수화됩니다. 테이블 사람은 사람 대신에 Poeple로 복수화됩니다. 따라서 이러한 복수화를 변경해야합니다. 연결로 일부 사전 작업을 사용하는 경우 (연결 문자열을 사용하지 마십시오) 업그레이드 만 할 수 있습니다. DBConnection은 EntityConnection과 호환되지 않습니다. 이 앱 레이어도 다시 작성해야합니다. 변환 템플릿에 많은 어려움이 있습니다.

관련 문제