การใช้ MySQL กับ Entity Framework [ปิด]


269

ไม่พบสิ่งที่เกี่ยวข้องกับ Entity Framework / MySQL บน Google ดังนั้นฉันหวังว่าจะมีคนรู้เกี่ยวกับมัน


8
พูดตรงไปตรงมาการสนับสนุน mysql สำหรับ LINQ เป็นอึ! ฉันกำลังต่อสู้กับปัญหาเล็กน้อยในช่วงหนึ่งสัปดาห์ที่ผ่านมา: | ...
effkay

1
คุณใช้ dblinq code.google.com/p/dblinq2007หรือไม่
Sharique

คำตอบ:


193

เปิดตัวแล้ว - รับตัวเชื่อมต่อ MySQL สำหรับ. Net v6.5 - รองรับการใช้งาน [Entity Framework]

ฉันรออยู่ตลอดเวลาถึงแม้ว่าการสนับสนุนจะเป็นพื้นฐาน แต่ก็ใช้ได้กับสถานการณ์พื้นฐานทั้งหมดของการโต้ตอบกับ db นอกจากนี้ยังมีการรวม Visual Studio พื้นฐาน

อัพเดท http://dev.mysql.com/downloads/connector/net/ เริ่มต้นด้วยเวอร์ชั่น 6.7 ตัวเชื่อมต่อ / เน็ตจะไม่รวม MySQL สำหรับการรวม Visual Studio อีกต่อไป ขณะนี้มีฟังก์ชั่นการใช้งานในผลิตภัณฑ์แยกต่างหากชื่อ MySQL สำหรับ Visual Studio โดยใช้โปรแกรมติดตั้ง MySQL สำหรับ Windows (ดูที่http://dev.mysql.com/tech-resources/articles/mysql-installer-for-windows.html )


4
ฉันคิดว่าฉันพูดถึงว่าเวอร์ชันล่าสุดมีให้ที่นี่ (ปัจจุบัน 6.2.2): mysql.com/downloads/connector/net
Brett Ryan

3
สิ่งนี้รองรับ EF4 และ VS2010 หรือไม่ ฉันติดตั้งตัวเชื่อมต่อและพยายามที่จะเพิ่มการเชื่อมต่อใหม่ใน VS2010 แต่ MySQL ไม่ปรากฏในรายชื่อของผู้ให้บริการ
Abhijeet Patel

1
ฉันอยากรู้เกี่ยวกับ MySQL, EF4 และ VS2010
Vinicius Rocha

1
ควรถ้าคุณมีการเชื่อมต่อล่าสุด ฉันเพิ่งย้ายผลิตภัณฑ์ของฉันไปที่. NET4 โดยเฉพาะเนื่องจากการสนับสนุน MySQL Entity เครื่องมือและทุกอย่างทำงานได้ดี แต่ปัญหาใหญ่คือการสนับสนุนพื้นฐานสำหรับการสืบค้นจริง มีปัญหาเล็กน้อยเกี่ยวกับการแสดงออกของ lamba ที่คุณไม่ได้ใช้กับ MSSQL
David Anderson

1
แน่นอนว่ามีเวอร์ชั่นใหม่ออกมา ตอนนี้รองรับ EF5, เวอร์ชั่น 6.7.4: dev.mysql.com/downloads/connector/net/#downloadsนอกจากนี้ตั้งแต่เวอร์ชั่นนี้ปลั๊กอิน VS พร้อมเซิร์ฟเวอร์ MySQL และเครื่องมืออื่น ๆ รวมอยู่ในแพ็คเกจเดียว: dev.mysql.com / tech-resources / articles / …
Nullius

22

ตรวจสอบโพสต์ของฉันในเรื่องนี้

http://pattersonc.com/blog/index.php/2009/04/01/using-mysql-with-entity-framework-and-aspnet-mvc---part-i/


ฉันแก้ไขการเข้ารหัสของลิงก์นั้น - ผู้ใช้สามารถคลิกขวาแทนที่จะต้องคัดลอก / วางหรือเลือก / ไปที่
kͩeͣmͮpͥͩ

7
ลิงก์ใช้งานไม่ได้
MüllerDK

2
คุณสามารถไปที่บทความด้วยลิงค์นี้: pattersonc.com/blog/2009/04
Andy White

การใช้ MYSQL กับ EF นั้นดีขึ้นหรือยังคงมีปัญหาอยู่หรือไม่ถ้าใครเป็น SQL Server ที่ดีกว่าใคร ๆ ก็สามารถระบุได้อย่างชัดเจนว่าทำไมเซิร์ฟเวอร์ SQL ถึงนิยมมากกว่าเพราะเป็นผู้จำหน่ายเดียวกันกับ Microsoft
user3508811

10

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


1
ลิงก์ไม่ทำงาน
Arjun Vachhani

7

นี่ไม่เกี่ยวกับ MS และสิ่งที่พวกเขาต้องการ พวกเขาได้สร้างระบบเปิด * ให้ผู้อื่นใช้ปลั๊กอิน 'ผู้ให้บริการ' - postgres และ sqlite มี - mysql เป็นเพียง laggin ... แต่ข่าวดีสำหรับผู้ที่สนใจฉันก็กำลังมองหาสิ่งนี้และพบว่าตัวเชื่อมต่อ MySql / Net 6.0 จะมี ... คุณสามารถตรวจสอบได้ที่นี่:

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


1
ฉันสงสัยว่า "initial" หมายถึงอะไรเมื่อพวกเขาพูดว่า "Initial Entity Framework support"
vintana

5

คุณต้องมีผู้ให้บริการแผนที่สำหรับ MySQL นั่นเป็นสิ่งพิเศษที่ Entity Framework ต้องการทำให้เวทมนตร์เกิดขึ้น บล็อกนี้พูดถึงผู้ให้บริการการแมปอื่นนอกเหนือจากที่ Microsoft เป็นผู้จัดหา ฉันไม่พบการกล่าวถึง MySQL ใด ๆ


ใช่คุณถูก. ฉันหวังว่าจะมีบางอย่างพร้อมอยู่ในขณะนี้
vintana

2

Vintana,

แน่นอนว่าตอนนี้มีบางอย่างพร้อมอยู่ http://www.devart.com/products.html - เป็นเชิงพาณิชย์แม้ว่า (คุณมีการทดลองใช้ IIRC เป็นเวลา 30 วัน) พวกเขาสร้างผู้ให้บริการการเขียนที่มีชีวิตดังนั้นฉันคิดว่ามันควรจะรวดเร็วและมีเสถียรภาพ ฉันรู้ว่า บริษัท ใหญ่ ๆ ใช้ผู้ให้บริการ Oracle แทน Orace และ MS


ขอขอบคุณสำหรับการตอบสนองของคุณ. @Vintana คุณสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับ dotConnect สำหรับ MySQL และข้อดีของที่นี่devart.com/dotconnect/mysql เพื่อปรับปรุงการทำงานของคุณกับหน่วยงานองค์กร Framework เราให้เป็นเครื่องมือขั้นสูงสำหรับการสร้างแบบจำลองภาพ - พัฒนาองค์กรdevart.com/entitydeveloper
Devart

1

ระวังการใช้ตัวเชื่อมต่อ. net, ตัวเชื่อมต่อ 6.6.5 มีข้อบกพร่องมันไม่ทำงานสำหรับการแทรกค่าจิ๋วจิ้นเป็นข้อมูลประจำตัวเช่น:

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()

จนถึงตอนนี้ฉันยังไม่พบวิธีแก้ปัญหาฉันต้องเปลี่ยนรหัสประจำตัวจิ๋วจินเป็นรหัสประจำตัวที่ไม่ได้ลงนามซึ่งแก้ปัญหาได้ แต่นี่ไม่ใช่ทางออกที่ถูกต้อง

หากคุณใช้ Connector.net รุ่นเก่ากว่า (ฉันใช้ 6.4.4) คุณจะไม่มีปัญหานี้

หากมีคนรู้เกี่ยวกับการแก้ปัญหาโปรดติดต่อฉัน

ไชโย!

Oware


ข้อผิดพลาดจะถูกโยนเพราะ p เป็นโมฆะ คุณต้องสร้างอินสแตนซ์ที่ว่างเปล่าใหม่ของวัตถุก่อน Ie Person p = บุคคลใหม่ (); ไม่ใช่บุคคล p; ดังนั้น:Person p = new Person(){Name = "Oware"}; context.Person.Add(p); context.SaveChanges();
เดฟ

ขออภัยฉันลืมเพิ่มบรรทัดใหม่แม้ว่าฉันจะเพิ่มบรรทัดใหม่ข้อผิดพลาดยังคงปรากฏ
oware

ข้อผิดพลาดได้รับการแก้ไขในเวอร์ชั่น 6.8.2 bugs.mysql.com/bug.php?id=70888 ตัวเชื่อมต่อ / เครือข่าย 6.8.3 ได้รับการเผยแพร่ dev.mysql.com/downloads/connector/net
Der_Meister



0

หากคุณสนใจที่จะใช้งาน Entity Framework ด้วย MySql บน mono / linux / macos สิ่งนี้อาจเป็นประโยชน์ https://iyalovoi.wordpress.com/2015/04/06/entity-framework-with-mysql-on-mac-os/


การใช้ MYSQL กับ EF นั้นดีขึ้นหรือยังคงมีปัญหาอยู่หรือไม่ถ้าใครเป็น SQL Server ที่ดีกว่าใคร ๆ ก็สามารถระบุได้อย่างชัดเจนว่าทำไมเซิร์ฟเวอร์ SQL ถึงนิยมมากกว่าเพราะเป็นผู้จำหน่ายเดียวกันกับ Microsoft
user3508811

ฉันไม่แน่ใจว่ามันเป็นอย่างไรในตอนนี้ แต่เรามีประสบการณ์ที่ไม่ดีนักเนื่องจากขาดคุณสมบัติและมันไม่สอดคล้องกันโดยรวม MS MSQL เป็นที่นิยมมากกว่าเพราะ Microsoft ให้ความสำคัญกับตัวเองเป็นอันดับแรก
Igor Yalovoy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.