背景: ASP.net MVC 4 アプリと mysql データベースを既に作成しています。コード ファーストを使用してデータベースを生成しました。Web アプリは、データを操作するための UI として使用されます。ただし、データは別の C# プログラムで作成されます。シリアルデバイスからテストデータを取得します。
問題: 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; }
}
}