Reputation: 947
This walkthrough works great with SQL Express: http://msdn.microsoft.com/en-us/library/gg197522(v=VS.103).aspx
I would like it to work with MySQL. I've done some research but none of the techniques I've found has been able to do it for me. Ideally I would like to do something like this:
<entityFramework>
<defaultConnectionFactory type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" />
</entityFramework>
This doesn't work (I have MySQL Connector Net 6.5.4 installed & MySql.Data referenced). I've tried deriving from IDbConnection factory as shown in this class here: http://www.vworker.com/RentACoder/misc/BidRequests/ShowBidRequest.asp?lngBidRequestId=1563829
and then using:
<entityFramework>
<defaultConnectionFactory type="SchoolModel.MySqlConnectionFactory, SchoolModel" />
but that doesn't work either. Can anybody please give me some pointers as to how to get this to work?
Many thanks.
Upvotes: 5
Views: 5036
Reputation: 191
To use Connector 6.5.4 with code-first EF5 on VS2012 you need:
Open VS2012 x86 Command Prompt as Admin and execute:
gacutil /i "C:\Program Files (x86)\MySQL\Connector NET 6.5.4\Assemblies\v4.0\mysql.data.dll" gacutil /i "C:\Program Files (x86)\MySQL\Connector NET 6.5.4\Assemblies\v4.0\mysql.data.entity.dll"
Add in your project's App.config this code to <configuration>
section:
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient" />
<add
name="MySQL Data Provider"
invariant="MySql.Data.MySqlClient"
description=".Net Framework Data Provider for MySQL"
type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data,
Version=6.5.4.0, Culture=neutral,
PublicKeyToken=c5687fc88969c44d"
/>
</DbProviderFactories>
</system.data>
Now add references to MySql.Data and MySql.Data.Entity to your solution and some code like this (I create MySqlConnection, then pass it to constructor of MyDbContext)
public class MyDbContext : DbContext
{
public MyDbContext(DbConnection connection) : base(connection, true) { }
public DbSet<Product> Products { get; set; }
}
[Table("sund_jshopping_products")]
public class Product
{
[Key]
[Column("product_id")]
public int Id { get; set; }
[Column("product_ean")]
public string Ean { get; set; }
[Column("product_manufacturer_id")]
public int OperatorId { get; set; }
[Column("months_status")]
public string MonthsStatus { get; set; }
[Column("extra_field_5")]
public string SideId { get; set; }
}
Upvotes: 3
Reputation: 19705
Connector 6.5.4 does not support code-first with EF 5. Actually it does not support code first.
You can try using dot net connector (at least the trial version).
Upvotes: 1
Reputation: 4133
Did you set the Datasource to MySQL while setting up your db connection. Also, click and make sure "Test Connection" succeeds before trying a connection directly from the code.
Upvotes: 0