c# - ASP.NET माइग्रेशन जोड़ें 'मिश्रित प्राथमिक कुंजी त्रुटि' धाराप्रवाह एपीआई का उपयोग कैसे करें



entity-framework entity-framework-core (1)

नमस्कार मैं एक वेब एप्लिकेशन बनाने की प्रक्रिया में हूं और पहले से ही Microsoft.entityFrameworkCore और Microsoft.entityFrameworkCore.Tools दोनों को स्थापित कर चुका हूं।

पैकेज मैनेजर कंसोल में ऐड-माइग्रेशन निष्पादित करने की प्रक्रिया के दौरान मुझे एक त्रुटि मिलती है

" System.InvalidOperationException: इकाई प्रकार 'अटेंड्स' में डेटा एनोटेशन के साथ संयुक्त प्राथमिक कुंजी परिभाषित है। समग्र प्राथमिक कुंजी सेट करने के लिए, धाराप्रवाह एपीआई का उपयोग करें। "

यहाँ इकाई फ़ोल्डर में मेरा कोड है।

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Threading.Tasks;

namespace _3241_farmDb.Entities
{

    public class Farm
    {
        [Required, MaxLength(30)]
        [Key]
        public string FarmName { get; set; }
        [Required, MaxLength(15)]
        public string FarmCity { get; set; }
        [Required, MaxLength(9)]
        public string FarmerSSN { get; set; }
    }
    public class Farmer
    {
        [Required, MaxLength(9)]
        [Key]
        public int SS { get; set; }
        [Required, MaxLength(9)]
        public string Fname { get; set; }
        [Required, MaxLength(15)]
        public string Lname { get; set; }
        [Required, MaxLength(15)]
        public string CityName { get; set; }
        [Required, MaxLength(15)]
        public string Address { get; set; }
        [Required, MaxLength(30)]
        public string BoardPositionName { get; set; }
    }
    public class Child
    {
        [Required, MaxLength(9)]
        [Key]
        public int FarmerSS { get; set; }
        [Required, MaxLength(15)]
        [Key]
        public string Fname { get; set; }
        [Required, MaxLength(15)]
        [Key]
        public string Lname { get; set; }
        [Required]
        public int Age { get; set; }
    }
    public class Attends
    {

        [Key, Column(Order = 1)]
        public int FarmerSS { get; set; }
        [Key, Column(Order = 2)]
        public int HotelID { get; set; }
        [Required, MaxLength(15)]
        public string BoardPosition { get; set; }
    }

    public class Livestock
    {
        [Required, MaxLength(15)]
        public int LivestockID { get; set; }
        [Required, MaxLength(15)]
        public string LivestockType { get; set; }
    }
    public class Farm_Houses
    {
        [Required, MaxLength(15)]
        [Key]
        public int LivestockID { get; set; }
        [Required, MaxLength(15)]
        public string FarmName { get; set; }
    }
    public class Crops
    {
        [Required, MaxLength(15)]
        [Key]
        public int CropID { get; set; }
        [Required, MaxLength(15)]
        public string CropName { get; set; }
    }
}

कंपोजिट कुंजी को ठीक से सेट करने के लिए मैं इसे कैसे समायोजित करूं?


ईएफ कोर पर ।।

समग्र कुंजियों को केवल धाराप्रवाह एपीआई का उपयोग करके कॉन्फ़िगर किया जा सकता है - कन्वेंशन कभी भी एक समग्र कुंजी सेटअप नहीं करेगा और आप एक को कॉन्फ़िगर करने के लिए डेटा एनोटेशन का उपयोग नहीं कर सकते।

यहाँ धाराप्रवाह एपीआई संस्करण है:

नोट: यह सिर्फ एक उदाहरण है। कृपया इसे अपने उपयोग मामले के अनुसार समायोजित करें।

protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Attends>()
            .HasKey(c => new { c.FarmerSS, c. HotelID });
    }

आप इसके बारे में अधिक यहाँ पढ़ सकते हैं: समग्र कुंजी