Google의 Entity Framework / MySQL과 관련된 내용을 찾을 수 없으므로 다른 사람이 알고 있기를 바랍니다.
Google의 Entity Framework / MySQL과 관련된 내용을 찾을 수 없으므로 다른 사람이 알고 있기를 바랍니다.
답변:
출시 된 것 - 가져 오기 닷넷 V6.5에 대한 MySQL의 커넥터 -이에 대한 지원을하고있다 [엔티티 프레임 워크]
지원은 기본이지만 대부분의 기본 DB 상호 작용 시나리오에서 작동합니다. 기본 Visual Studio 통합도 있습니다.
업데이트 http://dev.mysql.com/downloads/connector/net/ 버전 6.7부터 Connector / Net에는 더 이상 MySQL for Visual Studio 통합이 포함되지 않습니다. 이 기능은 이제 Windows 용 MySQL 설치 프로그램 ( http://dev.mysql.com/tech-resources/articles/mysql-installer-for-windows.html 참조 ) 을 사용하여 Visual Studio 용 MySQL이라는 별도의 제품에서 사용할 수 있습니다 .
이 주제에 대한 내 게시물을 확인하십시오.
MySQL은 며칠 안에 EF에 관한 웹 세미나를 주최하고 있습니다. 여기를보십시오 : http://www.mysql.com/news-and-events/web-seminars/display-204.html
편집 : 해당 웹 세미나는 현재 http://www.mysql.com/news-and-events/on-demand-webinars/display-od-204.html 에 있습니다 .
이것은 MS와 그들이 원하는 것에 관한 것이 아닙니다. 그들은 다른 사람들이 '제공자'를 플러그인 할 수있는 개방형 시스템을 만들었습니다-postgres와 sqlite는 그것을 가지고 있습니다-mysql은 너무 느립니다 ... / Net 6.0에 포함되어 있습니다. 여기에서 확인할 수 있습니다.
http://www.upfromthesky.com/blog/post/2009/03/24/MySql-Supports-the-Entity-Framework.aspx
빈 타나,
물론 지금 준비가되었습니다. http://www.devart.com/products.html- 비록 상업적입니다 (30 일 평가판 IIRC가 있습니다). 그들은 살아있는 글을 쓰는 제공자를 만들어서, 빠르고 안정적이어야한다고 생각합니다. Orace 및 MS 대신 Oracle 공급자를 사용하는 대기업을 알고 있습니다.
Connector .net 사용에주의하십시오. Connector 6.6.5에는 버그가 있습니다. 예를 들어 tinyint 값을 ID로 삽입 할 수 없습니다.
create table person(
Id tinyint unsigned primary key auto_increment,
Name varchar(30)
);
다음과 같은 객체를 삽입하려고하면 :
Person p;
p = new Person();
p.Name = 'Oware'
context.Person.Add(p);
context.SaveChanges();
Null 참조 예외가 발생합니다.
Referencia a objeto no establecida como instancia de un objeto.:
en MySql.Data.Entity.ListFragment.WriteSql(StringBuilder sql)
en MySql.Data.Entity.SelectStatement.WriteSql(StringBuilder sql)
en MySql.Data.Entity.InsertStatement.WriteSql(StringBuilder sql)
en MySql.Data.Entity.SqlFragment.ToString()
en MySql.Data.Entity.InsertGenerator.GenerateSQL(DbCommandTree tree)
en MySql.Data.MySqlClient.MySqlProviderServices.CreateDbCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree)
en System.Data.Common.DbProviderServices.CreateCommandDefinition(DbCommandTree commandTree)
en System.Data.Common.DbProviderServices.CreateCommand(DbCommandTree commandTree)
en System.Data.Mapping.Update.Internal.UpdateTranslator.CreateCommand(DbModificationCommandTree commandTree)
en System.Data.Mapping.Update.Internal.DynamicUpdateCommand.CreateCommand(UpdateTranslator translator, Dictionary`2 identifierValues)
en System.Data.Mapping.Update.Internal.DynamicUpdateCommand.Execute(UpdateTranslator translator, EntityConnection connection, Dictionary`2 identifierValues, List`1 generatedValues)
en System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter adapter)
en System.Data.EntityClient.EntityAdapter.Update(IEntityStateManager entityCache)
en System.Data.Objects.ObjectContext.SaveChanges(SaveOptions options)
en System.Data.Entity.Internal.InternalContext.SaveChanges()
en System.Data.Entity.Internal.LazyInternalContext.SaveChanges()
en System.Data.Entity.DbContext.SaveChanges()
지금까지 해결책을 찾지 못했을 때, tinyint ID를 서명되지 않은 int identity로 변경해야 문제가 해결되었지만 이것이 올바른 해결책은 아닙니다.
이전 버전의 Connector.net (6.4.4 사용)을 사용하면이 문제가 발생하지 않습니다.
누군가 솔루션에 대해 알고 있다면 저에게 연락하십시오.
건배!
자각
Person p = new Person(){Name = "Oware"}; context.Person.Add(p); context.SaveChanges();
https://www.devart.com/dotconnect/mysql/을 볼 수도 있습니다.
DevArt의 커넥터는 EF 및 MySQL을 지원합니다.
여기에 링크가 보이지 않지만 MySql 용 베타 .NET 커넥터가 있습니다. EF4 / VS2010 통합 6.3.2 베타를 다운로드하려면 "개발 릴리스"를 클릭하십시오.
http://dev.mysql.com/downloads/connector/net/5.0.html#downloads
mono / linux / macos에서 MySql을 사용하여 Entity Framework를 실행하려는 경우 https://iyalovoi.wordpress.com/2015/04/06/entity-framework-with-mysql-on-mac-os/ 가 도움이 될 수 있습니다.