काम नहीं करता है, मैं एक यूनिडायरेक्शनल को एक रिश्ते को लागू करना चाहता हूं; हालांकि कैस्केड डिलीट पर काम नहीं करता है।यूनिडायरेक्शनल वन टू रिलेशन यूनिट फ्रेमवर्क, कैस्केड डिलीट
मैं निम्नलिखित श्रेणियां होती हैं:
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public Address Address { get; set; }
}
public class Address
{
public int Id { get; set; }
public string Street { get; set; }
//I don't want the StudentId foreign key or the property of Student class here
}
मेरी प्रसंग कक्षा में, मैं इस तरह के रिश्ते मानचित्रण हूँ:, student
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Student>()
.HasRequired(s => s.Address)
.WithOptional()
.Map(m => m.MapKey("Address_Id"))
.WillCascadeOnDelete();
}
किसी कारण के लिए, यह address
जब हटाने से नहीं कर रहा है ऑब्जेक्ट हटा दिया गया है।
इसके अलावा, मैं भी इस तरह Student
कक्षा में विदेशी कुंजी संपत्ति (यानी AddressId
) जोड़ना चाहते हैं:
[ForeignKey("Address")]
[Column("Address_Id")]
public string AddressId { get; set; }
हालांकि, मैं इस त्रुटि जब मैं एक नया माइग्रेशन जोड़ने की कोशिश मिलती है:
पता_आईडी: नाम: एक प्रकार में प्रत्येक संपत्ति का नाम अद्वितीय होना चाहिए। संपत्ति का नाम 'पता_आईडी' पहले से ही परिभाषित किया गया है।
मेरा मानना है कि कि मैं चीजों को मिश्रण कर रहा हूँ (MapKey
साथ और AddressId
की विशेषताएँ)। हालांकि, मुझे नहीं पता कि इसे कैसे ठीक किया जाए।
मैं this SO question और this article माध्यम से चला गया; हालांकि, अब तक कोई भाग्य नहीं है।
DotNetFiddle से लिंक करें। यह काम नहीं करेगा क्योंकि कोई डेटाबेस नहीं है।
धन्यवाद। – Dumbledore