コードファーストアプローチ
本製品 からモデルを確認するもう1つの方法は、モデルクラスを記述することです。これは、Entity Framework におけるコードファーストアプローチで、アプリケーションで使用するデータモデルをより詳細に制御することができます。
コンテキストクラスの作成
これは、DbContext を拡張し、データソース内のテーブルを示すDbSet プロパティを公開する基本オブジェクトです。OnConfiguring メソッドをオーバーライドして、DbContext クラスの一部のデフォルト機能をオーバーライドします。
using Microsoft.EntityFrameworkCore; public class AvroContext : DbContext { public DbSet<MyTable> MyTable { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { if (!optionsBuilder.IsConfigured) { optionsBuilder.UseAvro("URI=C:\folder\table.avro;"); } } }
テーブルモデルの作成
コンテキストクラスのDbSet プロパティで定義された各テーブルのクラスを定義します。テーブルクラスには、そのテーブルの各フィールドに対応するプロパティのリストが含まれている必要があります。テーブルクラスの各プロパティの属性を設定するには、対応するマップクラスを定義する必要があります。
public class MyTable { public string KeyColumn { get; set; } public string MyColumn { get; set; } }
レコードの取得
以下のように、テーブルからレコードを取得します。
class Program { static void Main(string[] args) { AvroContext context = new AvroContext();var Query = from MyTable in context.MyTableselect MyTable; foreach (var result in Query) { Console.WriteLine("{0}", result.KeyColumn); Console.WriteLine("{0}", result.MyColumn); } try { context.SaveChanges(); } catch (Exception e) { Console.WriteLine(e); } Console.ReadLine(); } }
レコードの挿入
以下のように、既存のテーブルにレコードを挿入します。
class Program { static void Main(string[] args) { AvroContext context = new AvroContext(); MyTable newRecord = new MyTable() { MyColumn1 = "Value1", MyColumn2 = "Value2" }; context.SampleTable_1.Add(newRecord); try { context.SaveChanges(); Console.WriteLine(newRecord.Id); } catch (Exception e) { Console.WriteLine(e); } Console.ReadLine(); } }