it-swarm-vi.tech

Sử dụng MySQL với Entity Framework

Không thể tìm thấy bất cứ điều gì có liên quan về Entity Framework/MySQL trên Google vì vậy tôi hy vọng ai đó biết về nó.

266
vintana

Nó đã được phát hành - Nhận trình kết nối MySQL cho .Net v6.5 - điều này có hỗ trợ cho [Entity Framework]

Tôi đã chờ đợi điều này toàn bộ thời gian, mặc dù hỗ trợ là cơ bản, hoạt động cho hầu hết các kịch bản cơ bản của tương tác db. Nó cũng có tích hợp Visual Studio cơ bản.

UPDATEhttp://dev.mysql.com/doads/connector/net/ Bắt đầu với phiên bản 6.7, Trình kết nối/Net sẽ không còn tích hợp MySQL cho Visual Studio nữa. Chức năng đó hiện có sẵn trong một sản phẩm riêng biệt có tên MySQL cho Visual Studio có sẵn bằng Trình cài đặt MySQL cho Windows (xem http://dev.mysql.com/tech-resource/articles/mysql-installer-for-windows .html ).

191
Vin
22
pattersonc

MySQL sẽ tổ chức một hội thảo trực tuyến về EF sau vài ngày ... Xem tại đây: http://www.mysql.com/news-and-events/web-seminars/display-204.html

chỉnh sửa: Hội thảo trên web đó hiện có tại http://www.mysql.com/news-and-events/on-demand-webinars /display-od-204.html

10
Sir Code-A-Lot

Đây không phải là về MS và những gì họ muốn. Họ đã tạo ra một hệ thống * mở cho những người khác cắm 'nhà cung cấp' - postgres và sqlite có nó - mysql chỉ là laggin ... nhưng, tin tốt cho những người quan tâm, tôi cũng đang tìm kiếm điều này và thấy rằng Trình kết nối MySql/Net 6.0 sẽ có nó ... bạn có thể kiểm tra nó ở đây:

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

7
bbqchickenrobot

Bạn sẽ cần một nhà cung cấp bản đồ cho MySQL. Đó là một điều nữa mà Entity Framework cần để biến điều kỳ diệu thành hiện thực. Blog này nói về các nhà cung cấp bản đồ khác ngoài nhà cung cấp mà Microsoft đang cung cấp. Tôi không tìm thấy bất kỳ đề cập nào về MySQL.

5
Lars Truijens

Vintana,

Tất nhiên là có thứ gì đó sẵn sàng rồi. http://www.devart.com/products.html - mặc dù nó mang tính thương mại (bạn có bản dùng thử IIRC 30 ngày). Họ làm cho một nhà cung cấp viết sống, vì vậy tôi đoán nó phải nhanh và ổn định. Tôi biết các công ty thực sự lớn sử dụng nhà cung cấp Oracle của họ thay vì Orace và MS.

2
aaimnr

Hướng dẫn về MySQL này cho thấy cách tạo và sử dụng các thực thể EF làm nguồn dữ liệu cho điều khiển.

1
Kasey Speakman

Hãy cẩn thận khi sử dụng trình kết nối .net, Trình kết nối 6.6.5 có lỗi, nó không hoạt động để chèn các giá trị tinyint làm danh tính, ví dụ:

create table person(
    Id tinyint unsigned primary key auto_increment,
    Name varchar(30)
);

nếu bạn cố gắng chèn một đối tượng như thế này:

Person p;
p = new Person();
p.Name = 'Oware'
context.Person.Add(p);
context.SaveChanges();

Bạn sẽ nhận được một ngoại lệ tham chiếu 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()

Cho đến bây giờ tôi vẫn chưa tìm được giải pháp, tôi phải thay đổi danh tính nhỏ bé của mình thành nhận dạng int không dấu, điều này đã giải quyết vấn đề nhưng đây không phải là giải pháp phù hợp.

Nếu bạn sử dụng phiên bản cũ hơn của Connector.net (tôi đã sử dụng 6.4.4), bạn sẽ không gặp phải vấn đề này.

Nếu ai đó biết về giải pháp, xin vui lòng liên hệ với tôi.

Chúc mừng!

Oware

1
oware

Bạn cũng có thể xem https://www.devart.com/dotconnect/mysql/

Trình kết nối của DevArt hỗ trợ EF và MySQL.

1
scotru

Tôi không thấy liên kết ở đây, nhưng có Trình kết nối .NET beta cho MySql. Nhấp vào "Phát hành phát triển" để tải xuống bản 6.3.2 beta, có tích hợp EF4/VS2010:

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

0
Brian Frantz

Nếu bạn quan tâm đến việc chạy Entity Framework với MySql trên mono/linux/macos, điều này có thể hữu ích https://iyalovoi.wordpress.com/2015/04/06/entity-framework-with-mysql-on- mac-os /

0
Igor Yalovoy