मैं एक सुविज्ञ एन हाइबरनेट उपवर्ग मानचित्रण है कि वर्तमान में कुछ इस तरह दिखता बनाने हूँ:फ़्लुएंट निबर्ननेट टेबल-प्रति-सबक्लास रणनीति का उपयोग करते समय आप पहचान कॉलम निर्दिष्ट कर सकते हैं?
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();
}
}
जब मैं कोशिश करते हैं और इन संस्थाओं में से एक को बचाने मैं एक अपवाद मिल कॉलम मैंने अपने सबक्लास की तालिका पर सेट किया है जिसे "टास्क आईडी" नाम दिया गया है। क्या डिफ़ॉल्ट नामकरण योजना को ओवरराइड करने के लिए कुछ है जो निबर्ननेट उपयोग करने का प्रयास कर रहा है? मुझे उपclass में "आईडी" कॉलम निर्दिष्ट करने की क्षमता नहीं है और मैं इसके बारे में किसी और को भी नहीं ढूंढ सकता।
माता पिता मानचित्रण इस तरह दिखता है:
public class TaskMap: ClassMap<Task>
{
public TaskMap()
{
Table("Tasks");
Id(x => x.Id, "Id")
.GeneratedBy.Identity();
.
.
.
}
}
जैसा कि मैंने कहा इससे पहले कि मैं टेबल-पर-उपवर्ग रणनीति के साथ जा रहा हूँ तो इन 2 अलग-अलग तालिकाओं कर रहे हैं। मैं अपने टास्क डाउनलोड फ़ाइल पर "टास्क_आईडी" होने के लिए कुंजी बदल सकता हूं, लेकिन मैं बस यह निर्दिष्ट करने में सक्षम हूं कि यह मेरे मैपिंग में "टास्क आईडी" है, इसलिए मैं अपने नामकरण सम्मेलन में रह सकता हूं।
अपने पदानुक्रम कैसे है की तरह लग रहा है? क्या आप अभिभावक मानचित्रण पोस्ट कर सकते हैं? – nemesv
अभिभावक मैपिंग रखने के लिए संपादित पोस्ट। –