2012-05-17 3 views
5

Это пошаговое руководство прекрасно работает с SQL Express: http://msdn.microsoft.com/en-us/library/gg197522(v=VS.103).aspxEntity Framework 5.0 с кодовым первым с MySQL в WPF

Я хотел бы, чтобы работать с MySQL. Я провел некоторое исследование, но ни один из методов, которые я нашел, не смог сделать это для меня. В идеале я хотел бы сделать что-то вроде этого:

 <entityFramework> 
    <defaultConnectionFactory type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" /> 
    </entityFramework> 

Это не работает (у меня есть MySQL Connector Net 6.5.4 установлен & MySql.Data ссылки). Я пытался получения от IDbConnection завода, как показано в этом классе здесь: http://www.vworker.com/RentACoder/misc/BidRequests/ShowBidRequest.asp?lngBidRequestId=1563829

, а затем с помощью:

 <entityFramework> 
<defaultConnectionFactory type="SchoolModel.MySqlConnectionFactory, SchoolModel" /> 

, но это не работает. Может кто-нибудь, пожалуйста, дать мне несколько указаний о том, как заставить это работать?

Большое спасибо.

+0

это не работает не является описанием проблемы. Получаете ли вы какое-либо исключение? Что такое трассировка стека исключений и сообщение? –

+0

Это не работает, что описанные выше методы не связывают код с базой данных MySQL.Никаких исключений, приложение продолжает подключаться к базе данных SQLEXPRESS по умолчанию. Спасибо за ваш ответ! –

+0

Чтобы проверить основы, правильно ли настроена строка подключения для подключения к MySQL, или вы оставили ее по умолчанию (это будет либо SQL Express, либо SQL CE)? –

ответ

0

Установили ли вы источник Datasource для MySQL, настроив соединение с db. Также нажмите и убедитесь, что «Проверить соединение» удастся выполнить попытку подключения непосредственно из кода.

enter image description here

enter image description here

0

Connector 6.5.4 не поддерживает код-первых с EF 5. На самом деле он не поддерживает код первого.

Вы можете попробовать использовать сетевой разъем (по крайней мере, пробную версию).

3

Чтобы использовать разъем 6.5.4 с кодовым первым EF5 на VS2012 вам нужно:

  1. Установка 6.5.4 MSI
  2. MySql Connector
  3. Открыть VS2012 x86 командной строки, как администратора и выполнить:

    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 "

  4. Добавить в App.config вашего проекта этот код <configuration> раздел:

    <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> 
    
  5. Теперь добавить ссылки на MySql.Data и MySql.Data.Entity к вашему решению и некоторые кода, как это (я создаю MySqlConnection, то передать его в конструктор 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; } 
    } 
    
+1

Можете ли вы привести пример того, как вы создаете объект MySql 'DbConnection'? Кроме того, обновили ли вы до MySql Connector 6.6.5.0 и придумали другой способ сделать это, где вы можете указать все в app.config? –

Смежные вопросы