2013-08-01 4 views
1

Фон: Я уже создал приложение ASP.net MVC 4 и базу данных mysql. Сначала я использовал код для создания баз данных. Веб-приложение будет использоваться в качестве пользовательского интерфейса для взаимодействия с данными. Однако данные создаются в отдельной программе C#. Который получает тестовые данные с последовательного устройства.Как получить доступ к базе данных MySQL с Entity Framework

Проблема: Я не могу понять, как подключиться к базе данных с каркасом сущности в моем приложении C#.

Я уже создал новую модель для приложения C# для использования. Я читал, что использование общего .DLL - не лучшая идея.

Это то, что у меня есть до сих пор.

private ReportDBContext db = new ReportDBContext(); 

    private void saveReport() 
    { 
     string connStr = "server=RnD-Chopper;user=CWXDAQ;database=ReportDB;port=3306;password=QADXWC;"; 
     MySqlConnection conn = new MySqlConnection(connStr); 
     try 
     { 

      db.Reports.Add(); 

      // Perform database operations 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.ToString()); 
     } 
     conn.Close(); 
     Console.WriteLine("Done."); 




     unlockGUI(); 
    } 

отчет модель

using System; 
using System.Collections.Generic; 
using System.ComponentModel.DataAnnotations; 
using System.ComponentModel.DataAnnotations.Schema; 
using System.Data.Entity; 
using System.Data.Entity.Infrastructure; 
using MySql.Data.Entity; 
using MySql.Data.MySqlClient; 
using System.Linq; 
using System.Web; 

namespace CXW__DAQ___Record.Models 
{ 
    public class Report 
    { 
     [Display(Name = "Test ID #")] 
     public int ID { get; set; } 

     [Required(ErrorMessage = "Test Name is Required")] 
     [Display(Name = "Test Name")] 
     public string Name { get; set; } 

     [Display(Name = "Date Tested")] 
     public DateTime TestDate { get; set; } 

     [Display(Name="Test Done For")] 
     public string TestFor { get; set; } 

     public string Comment { get; set; } 

     public enum enumForceUnits { lbs }; 
     public enum enumTimeUnits { mS }; 

     [Required(ErrorMessage = "Unit of Force (ForceUnit) is required")] 
     public enumForceUnits forceUnit; 

     [Required(ErrorMessage = "Unit of Time (TimeUnit) is required")] 
     public enumTimeUnits timeUnit; 

     public virtual ICollection<Reading> Readings { get; set; } 

    } 


    public class Reading 
    { 
     public int ID { get; set; } 

     public virtual Report Report { get; set; } 

     public long Time { get; set; } 
     public double Force { get; set; } 
    } 


    public class ReportDBContext : DbContext 
    { 
     public DbSet<Report> Reports { get; set; } 
     public DbSet<Reading> Readings { get; set; } 
    } 
} 
+0

Как вы создаете свою модель? От каких баз данных? –

+0

Я использовал код сначала в ASP.net MVC 4 (это приложение работает нормально), а затем я просто скопировал файл .cs и удалил модели/таблицы, которые мне не нужны. Я не могу найти учебник по этому поводу, поэтому я просто летаю на сиденье своих штанов. – TheColonel26

ответ

0

Я понял это сам. Вам нужно добавить строку подключения в файл app.config, а затем установить Entity Framework Power Tools, а затем использовать ее для обратной инженерии моделей из базы данных.

При создании строки подключения обязательно установите Упорство Info Security = True

Также еще одна проблема, я побежал, чтобы было что Визуальное Studios продолжала пытаться использовать версию разъема 6.6.5 вместо версии, была установка, которая является 6.7.4

так что мне пришлось добавить эту строку в файл app.config, а

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-6.6.5.0" newVersion="6.7.4.0" />   
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
1

Вы должны использовать разъем - http://dev.mysql.com/downloads/connector/net

сгенерируйте модель с помощью разъема, тоже.

+0

Я вот что такое MySqlConnection. – TheColonel26

+0

Entity Framework управляет соединениями. Вы получаете доступ к базе данных через класс DatabaseContext, который был сгенерирован как часть вашей модели. –

+0

Так что мне просто нужно добавить строку подключения в мой web.config? Затем он обрабатывает остальные? как и ASP.net? – TheColonel26

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