it-swarm-ko.tech

Entity Framework와 함께 MySQL 사용

Google의 Entity Framework/MySQL과 관련된 내용을 찾을 수 없으므로 다른 사람이 알고 있기를 바랍니다.

268
vintana

출시되었습니다. . Net v6.5 용 MySQL 커넥터 를 가져 오십시오.-[Entity Framework]를 지원합니다.

지원은 기본이지만 대부분의 기본 DB 상호 작용 시나리오에서 작동합니다. 기본 Visual Studio 통합도 있습니다.

UPDATEhttp://dev.mysql.com/downloads/connector/net/ 버전 6.7부터, 커넥터/Net은 더 이상 MySQL for Visual Studio 통합을 포함하지 않습니다. 이 기능은 이제 Windows 용 MySQL 설치 프로그램을 사용하여 사용할 수있는 Visual Studio 용 MySQL이라는 별도의 제품에서 사용할 수 있습니다 ( http://dev.mysql.com/tech-resources/articles/mysql-installer-for-windows 참조) .html ).

192
Vin
22
pattersonc

MySQL은 며칠 안에 EF에 관한 웹 세미나를 주최하고 있습니다. 여기를보십시오 : http://www.mysql.com/news-and-events/web-seminars/display-204.html

edit : 웹 세미나는 이제 http://www.mysql.com/news-and-events/on-demand-webinars에 있습니다. /display-od-204.html

10
Sir Code-A-Lot

이것은 MS와 그들이 원하는 것에 관한 것이 아닙니다. 그들은 다른 사람들이 '제공자'를 플러그인 할 수있는 개방형 시스템을 만들었습니다./Net 6.0에 포함되어 있습니다. 여기에서 확인할 수 있습니다.

http://www.upfromthesky.com/blog/post/2009/03/24/MySql-Supports-the-Entity-Framework.aspx

7
bbqchickenrobot

MySQL 용 매핑 공급자가 필요합니다. 이는 Entity Framework가 마법을 실현하는 데 필요한 추가 사항입니다. 이 블로그 Microsoft가 제공하는 것 이외의 다른 매핑 공급자에 대해 이야기합니다. MySQL에 대한 언급이 없습니다.

5
Lars Truijens

빈 타나,

물론 지금 준비가되었습니다. http://www.devart.com/products.html -상업적이지만 (30 일 평가판 IIRC가 있습니다). 그들은 살아있는 글을 쓰는 제공자를 만들어서, 빠르고 안정적이어야한다고 생각합니다. Orace 및 MS 대신 Oracle 공급자를 사용하는 대기업을 알고 있습니다.

2
aaimnr

이 MySQL 자습서 는 컨트롤의 데이터 소스로 EF 엔티티를 생성하고 사용하는 방법을 보여줍니다.

1
Kasey Speakman

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 사용)을 사용하면이 문제가 발생하지 않습니다.

누군가 솔루션에 대해 알고 있다면 저에게 연락하십시오.

건배!

자각

1
oware

https://www.devart.com/dotconnect/mysql/ 을 볼 수도 있습니다.

DevArt의 커넥터는 EF 및 MySQL을 지원합니다.

1
scotru

여기에 링크가 보이지 않지만 MySql 용 베타 .NET 커넥터가 있습니다. EF4/VS2010 통합 6.3.2 베타를 다운로드하려면 "개발 릴리스"를 클릭하십시오.

http://dev.mysql.com/downloads/connector/net/5.0.html#downloads

0
Brian Frantz

Mono/linux/macos에서 MySql을 사용하여 Entity Framework를 실행하려는 경우이 방법이 도움이 될 수 있습니다 https://iyalovoi.wordpress.com/2015/04/06/entity-framework-with-mysql-on- mac-os /

0
Igor Yalovoy