NPoco Micro-ORMのバージョン 2.6.88 を使用しています。
次のようなクラス階層があるとしましょう。
[NPoco.TableName("Person")]
[NPoco.PrimaryKey("PersonID", AutoIncrement = false)]
class Person
{
public Guid PersonID { get; set; }
public String Name { get; set; }
}
class Employee : Person
{
public String Department { get; set; }
}
このクラス階層を、「サブクラスごとのテーブル」アプローチで設計されたデータベースにマップする必要があります。これは、列とを持つPerson
テーブルがあり、列とを持つテーブルがあることを意味します。PersonID
Name
Employee
PersonID
Department
私の質問は、NPoco を使用して新しい従業員をデータベースに挿入するにはどうすればよいですか? 私はこのようなことを試しました:
Employee myEmployee = new Employee() { PersonID = Guid.NewGuid(), Name = "Employee Name", Department = "TestDepartment" };
NPoco.Database myDb = new NPoco("MyConnection");
using (var transaction = myDb.GetTransaction())
{
myDb.Insert<Person>(myEmployee as Person);
myDb.Insert<Employee>("Employee", "PersonID", false, myEmployee);
transaction.Complete();
}
NPoco が従業員固有のフィールドを Person テーブルに挿入しようとするため、このコードは最初の挿入で失敗します。
これを正しく実装するにはどうすればよいですか?