私は現在、次のようになります流暢Nの休止サブクラスのマッピングを作成しています:Fluent Nhibernate Table-Per-Subclass戦略を使用する場合、ID列を指定できますか?
Test.TaskRepositoryTest.DeleteTest:
NHibernate.Exceptions.GenericADOException : could not insert: [TaskManager.Entities.TaskDownload#269][SQL: INSERT INTO TasksDownload (ExtraProperty1, ExtraProperty2, Task_id) VALUES (?, ?, ?)]
----> System.Data.SqlClient.SqlException : Invalid column name 'Task_id'.
それはイドためです:
public class TaskDownloadMap: SubclassMap<TaskDownload>
{
public TaskDownloadMap()
{
Table("TasksDownload");
Map(x => x.ExtraProperty1, "ExtraProperty1")
.Nullable();
Map(x => x.ExtraProperty2, "ExtraProperty2")
.Nullable();
}
}
私がしようとすると、これらのエンティティのいずれかを保存するI例外を取得私のサブクラスのテーブルに設定されている列は "TaskId"という名前です。 nhibernateが使用しようとしているデフォルトの命名方式を上書きするものがありますか?私はサブクラスの "Id"列を指定する能力を持っていないようだし、誰かがそれについて話すことさえできない。これらは、2つの異なるテーブルですので、私は表・パー・サブクラス戦略つもりです前に私が言ったように
public class TaskMap: ClassMap<Task>
{
public TaskMap()
{
Table("Tasks");
Id(x => x.Id, "Id")
.GeneratedBy.Identity();
.
.
.
}
}
:
親のマッピングは次のようになります。 TasksDownloadテーブルのキーを「Task_id」に変更することはできますが、私は自分の命名規則に従うことができるように、マッピングで「TaskId」を指定することができます。
あなたの階層のように見えるされてどのように?親マッピングを投稿できますか? – nemesv
親のマッピングを持つ投稿を編集しました。 –