6

मेरे पास ईएफ कोड फर्स्ट फ्लुएंट एपीआई में विदेशी कुंजी को परिभाषित करने के बारे में एक प्रश्न है। मेरे पास इस तरह का एक परिदृश्य है:विदेशी कुंजी इकाई फ्रेमवर्क कोड निर्दिष्ट करना, फ्लुएंट एपी

दो वर्ग व्यक्ति और कार। मेरे परिदृश्य में कार व्यक्ति को असाइन कर सकती है या नहीं (एक या शून्य संबंध)। कोड:

public class Person 
{ 
    public int Id { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
} 

public class Car 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public Person Person { get; set; } 
    public int? PPPPP { get; set; } 
} 

class TestContext : DbContext 
{ 
    public DbSet<Person> Persons { get; set; } 
    public DbSet<Car> Cars { get; set; } 

    public TestContext(string connectionString) : base(connectionString) 
    { 
    } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Entity<Car>() 
        .HasOptional(x => x.Person) 
        .WithMany() 
        .HasForeignKey(x => x.PPPPP) 
        .WillCascadeOnDelete(true); 

     base.OnModelCreating(modelBuilder); 
    } 
} 

मेरी नमूने में मैं PPPPP के लिए विदेशी कुंजी PersonId नाम बदलना चाहते हैं। मेरी मानचित्रण में मैं कहता हूँ:

modelBuilder.Entity<Car>() 
      .HasOptional(x => x.Person) 
      .WithMany() 
      .HasForeignKey(x => x.PPPPP) 
      .WillCascadeOnDelete(true); 

लेकिन मेरे रिश्ते शून्य करने के लिए एक है और मुझे डर है कि मैं withmany पद्धति का उपयोग करके गलती करते हैं, लेकिन एफई उचित मैपिंग के साथ डेटाबेस उत्पन्न, और सब कुछ अच्छी तरह से काम करता है।

कृपया कहें कि क्या मैं अपने फ्लुएंट एपीआई कोड में गलत हूं या ऐसा करने का अच्छा तरीका अब किया गया है।

सहायता के लिए धन्यवाद।

उत्तर

3

मुझे यहां फ्लेंट एपीआई के उपयोग में कोई समस्या नहीं दिखाई दे रही है। यदि आप Person कक्षा पर संग्रह नेविगेशन संपत्ति (यानी: Cars) नहीं चाहते हैं तो आप कम WithMany विधि तर्क का उपयोग कर सकते हैं।

+0

ठीक है, उत्तर के लिए धन्यवाद। – patryko88

+0

आपके पास "एक (एक या शून्य)" रिश्ते कैसे हो सकता है और Fluent API के WithMany() हिस्से का उपयोग कैसे कर सकता है? @ patryko88 क्या आपको अपना कोड काम करने के लिए मिला था? यदि हां, तो क्या आप उत्तर पोस्ट कर सकते हैं? धन्यवाद! –

+0

@BrianBehm ईएफ आपको केवल एक-से-एक संबंध के दोनों तरफ नेविगेशन गुणों की अनुमति देता है यदि आपने पीके मैपिंग साझा की है। संग्रह संपत्ति को छोड़कर, रिलेशनशिप _ एक जैसा है। – Eranga

संबंधित मुद्दे