دسته بندی ها
12:08 1399/10/13

ایجاد رابطه (چند به یک) در جدول بانک اطلاعاتی در Sql Server

مشخصات سوال کننده :
کاربر : sadati     امتیاز کاربر : 17     رتبه کاربر : 41
دسته بندی : Asp.net Core Sql Server

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 2655
2 نظر
fateme : الان این کدهایی که نوشتید چی هست؟ اینا فیلدهای جدول هست؟ کلاس هست؟ چیزی مشخص نشده. لطفا دقیق سوال بپرسید.

امتیاز کاربر : 1635   رتبه کاربر : 2   تاریخ ثبت : 12:56 1399/10/13
sadati : این بخشی از مدل جدول بانک اطلاعاتی بنام پرونده هستش ، پرونده 3 تا فیلد داره که از جدول تسهیلات اطلاعات میگیره .

امتیاز کاربر : 17   رتبه کاربر : 41   تاریخ ثبت : 01:12 1399/10/13
هوش مصنوعی

پاسخ هوش مصنوعی

برای حل مشکل شما که مربوط به ایجاد کلید خارجی (Foreign Key) در بانک اطلاعاتی Sql Server است، به نظر می رسد که شما به نوع داده ای که برای فیلدهای کلید خارجی تعریف کرده اید توجه نکرده اید.

با توجه به توضیحاتی که ارایه کردید، شما باید فیلدهای خود را به گونه ای تعریف کنید که بتوانند NULL را قبول کنند. بنابراین می توانید از نوع داده ی int? به جای int استفاده کنید. در زیر تغییرات لازم را مشاهده می کنید:

        public int? Loan1 { get; set; }
        [ForeignKey("Loan1")]
        public virtual Tashilat1 Tashilat1 { get; set; }

        public int Loan1Defined { get; set; }
        public int Loan1Amount { get; set; }
        public int Loan1Rate { get; set; }
        public int Loan1NumOfInst { get; set; }

        public int? Loan2 { get; set; }
        [ForeignKey("Loan2")]
        public virtual Tashilat1 Tashilat2 { get; set; }

        public int Loan2Defined { get; set; }
        public int Loan2Amount { get; set; }
        public int Loan2Rate { get; set; }
        public int Loan2NumOfInst { get; set; }

        public int? Loan3 { get; set; }
        [ForeignKey("Loan3")]
        public virtual Tashilat1 Tashilat3 { get; set; }

        public int Loan3Defined { get; set; }
        public int Loan3Amount { get; set; }
        public int Loan3Rate { get; set; }
        public int Loan3NumOfInst { get; set; }

با این تغییرات، شما اجازه می دهید که فیلدهای کلید خارجی نیز خالی باشند و این به شما کمک می کند تا از بوجود آمدن مشکلات مربوط به مسیرهای چندگانه Cascade جلوگیری کنید.

پس از اعمال این تغییرات، سعی کنید دوباره عملیات Update-Database را انجام دهید و ببینید که آیا مشکل حل شده است یا خیر.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : fateme 17:52 1399/10/13

خطای شما در واقع خطای زیر هست (توی قسمتی که خطا رو نوشتید هم مشخص هست.)

Introducing FOREIGN KEY constraint may cause cycles or multiple cascade paths

 

این مورد قبلا سوال شده و پاسخ هم دریافت کرده. لینک زیر رو مطالعه کنید.

خطای Introducing FOREIGN KEY constraint may cause cycles or multiple cascade paths در مایگریشن

به این پاسخ امتیاز بدهید    1
امتیاز: 1635 رتبه: 2
1 نظر
sadati : بجای int از ?int استفاده کردم و حل شد. فقط موندم چرا تو آموزش ها به این نکته توجه نشده ؟

امتیاز کاربر : 17   رتبه کاربر : 41   تاریخ ثبت : 09:00 1399/10/13
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود