Şu anda şuna benzer bir Akıcı N hazırda alt sınıf eşleme oluşturma:Fluent Nhibernate Table-Per-Subclass stratejisini kullanırken kimlik sütununu belirtebilir misiniz?
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'.
O Id çünkü var:
public class TaskDownloadMap: SubclassMap<TaskDownload>
{
public TaskDownloadMap()
{
Table("TasksDownload");
Map(x => x.ExtraProperty1, "ExtraProperty1")
.Nullable();
Map(x => x.ExtraProperty2, "ExtraProperty2")
.Nullable();
}
}
denemek ve bu varlıklar birini kurtarmak istisna almak alt sınıfımın tablosuna koyduğum sütun "TaskId" olarak adlandırılmıştır. Nhibernate'in kullanmaya çalıştığı varsayılan adlandırma şemasını geçersiz kılacak bazı var mı? Alt sınıftaki "Id" sütununu belirleme yeteneğine sahip değilim ve başka birisini bu konuda konuşamıyorum.
ebeveyn haritalama şuna benzer:
public class TaskMap: ClassMap<Task>
{
public TaskMap()
{
Table("Tasks");
Id(x => x.Id, "Id")
.GeneratedBy.Identity();
.
.
.
}
}
Bunları 2 farklı tablolar vardır bu yüzden Tablo-Per-Altsınıf stratejisi ile gidiyorum önce söylediğim gibi. TasksDownload tablosumdaki anahtarı "Task_id" olmak için değiştirebilirim ancak eşleme konumumda "TaskId" olduğunu belirtebilmem için adlandırma düzenime devam edebilirim.
nasıl hiyerarşidir benziyor? Üst haritalamayı yayınlayabilir misiniz? Ebeveyn eşlemesine sahip olmak için – nemesv
Düzenlenmiş gönderi. –