Mono에서 MySql 데이터베이스와 함께 Linq를 어떻게 사용할 수 있나요?
문제
MySql 데이터베이스와 상호 작용하는 C# 코드에 Linq 기능을 제공하는 수많은 라이브러리가 있습니다.그 중 Mono에서 가장 안정적이고 사용하기 쉬운 것은 무엇입니까?
배경(대부분 관련 없음):MySql 데이터베이스의 값을 업데이트하는 간단한 C#(.Net 2.0) 프로그램이 있습니다.cron 작업을 통해 야간에 실행되며 Pentium 3 450Mhz, Linux + Mono에서 실행됩니다.주로 연습용으로 Linq(.Net 3.5)를 사용하여 다시 작성하고 싶습니다(아직 Linq를 사용하지 않았습니다).
해결책
MySql의 유일한 (무료) linq 공급자는 다음과 같습니다. DbLinq, 그리고 나는 이것이 생산 준비가 되려면 아직 멀었다고 생각합니다.
도 있습니다 마이다이렉트넷 상업용이지만 그 기능에 대해 엇갈린 리뷰를 들었습니다.
MySql이 .net 커넥터의 5.3 버전에 대해 Linq to Entities API를 구현할 것이라는 내용을 읽었지만 이에 대한 일정이 있는지는 모르겠습니다.실제로 MySql은 몇 달 동안 Entity Framework 지원에 대해 전혀 침묵했습니다.
부록:MySql Connector/Net 6.0의 최신 릴리스는 릴리스 노트에 따라 EF를 지원합니다.이것이 얼마나 안정적이고 유용한지 잘 모르겠습니다. 따라서 사용해 본 사람의 의견을 듣고 싶습니다.
다른 팁
에 따르면 모노 로드맵 Linq를 모노로 사용할 수 있는지 잘 모르겠습니다.
Linq 중 적어도 일부는 최신 릴리스에서 사용할 수 있지만 Linq to DB는 Mono 2.4(2009년 2월)용으로 나열되어 있습니다.
Mono에 대해서는 잘 모르겠지만 방금 사용하기 시작했습니다. 빛의 속도 LINQ-to-MySQL을 지원합니다.
현재로서는 linq to sql을 사용할 수 없습니다. 타사 linq mysql 공급자나 linq to 엔터티를 살펴볼 수도 있습니다.linq to sql은 SQL Server 데이터베이스에서만 작동합니다.
LINQ to SQL은 코드에서 쿼리를 쉽게 구성할 수 있도록 식의 강력한 기능을 활용하는 단순한 ORM 계층입니다.
도구에 대한 임시 쿼리를 호출하는 경우에는 LINQ를 사용할 필요가 거의 없으며 코드에 추상화 계층을 추가하기만 하면 됩니다.
나는 튜토리얼을 시도했다 http://www.primaryobjects.com/CMS/Article100.aspx.이는 dblinq/dbmetal을 사용하여 각 테이블에 대한 데이터 컨텍스트 클래스와 클래스를 생성합니다.
처리되지 않은 예외(MySql.Data.Types.MySqlConversionException:MySQL 날짜/시간 값을 System.DateTime으로 변환할 수 없습니다.").인터넷 검색은 "제로 dateTime = true;"를 추가하여 쉽게 해결해야한다고 밝혔다. 연결 문자열에.불행히도 이것은 내 문제를 해결하지 못하는 것으로 나타났습니다.MySQL .Net 커넥터가 비난을 받았다고 생각하여 MySQL 커넥터를 사용하여 linq2sql 중간 계층 없이 dblinq에 의해 생성된 SQL을 실행했습니다.이번에는 예외가 발생하지 않았습니다.날짜 열이 없는 테이블은 DbLinq에서 작동했습니다.따라서 내 실험에서 나는 Adam의 의견에 동의합니다. DbLinq는 프로덕션 준비가 아직 멀었습니다.