مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

arash_saba

عضویت از 1394/06/16

خطا در کد فرست

  • یکشنبه 6 مرداد 1398
  • 22:53
تشکر میکنم

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

 public class Feature
    {
        [Key]
        public Guid Id { get; set; }

        [Display(Name = "نام")]
        [Required(ErrorMessage = "لطفا {0} را وارد نمایید")]
        [MaxLength(250, ErrorMessage = "{0} نمی تواند از {1} حرف بیشتر باشد")]

        public Guid ParentId { get; set; }
        [ForeignKey("ParentId")]
        public List<Feature> Features { get; set; }
    }

متن خطا اینه

IReadOnlyDictionary`2 parameterValues)
ClientConnectionId:2f5e53dd-186e-4a10-8d79-d937559e5771
Error Number:1785,State:0,Class:16
Failed executing DbCommand (6ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE TABLE [Features] (
    [Id] uniqueidentifier NOT NULL,
    [FaName] nvarchar(250) NOT NULL,
    [EnName] nvarchar(250) NOT NULL,
    [IsEnable] bit NOT NULL,
    [Ordered] float NOT NULL,
    [ParentId] uniqueidentifier NOT NULL,
    CONSTRAINT [PK_Features] PRIMARY KEY ([Id]),
    CONSTRAINT [FK_Features_Features_ParentId] FOREIGN KEY ([ParentId]) REFERENCES [Features] ([Id]) ON DELETE CASCADE
);

-----

Introducing FOREIGN KEY constraint 'FK_Features_Features_ParentId' on table 'Features' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
Could not create constraint or index. See previous errors.

مشکل چی میتونه باشه

پاسخ های این پرسش

تعداد پاسخ ها : 3 پاسخ
کاربر سایت

رضا نصیری

عضویت از 1392/10/01

  • دوشنبه 7 مرداد 1398
  • 12:02

سلام. ارتباط های شما درست نیست و دچار چرخه یا چند مسیری شده است.

public class Feature
   {
       [Key]
       public Guid Id { get; set; }
 
       [Display(Name = "نام")]
       [Required(ErrorMessage = "لطفا {0} را وارد نمایید")]
       [MaxLength(250, ErrorMessage = "{0} نمی تواند از {1} حرف بیشتر باشد")]
 
       public Guid? ParentId { get; set; }
	   
       [ForeignKey("ParentId")]
       public Feature Features { get; set; }
   }

اینو جایگزین کنید.

توجه داشته باشید که ParentId شما باید قابلیت null بودن رو می داشت، که شما این قابلیت رو نذاشته بودید.

کاربر سایت

arash_saba

عضویت از 1394/06/16

  • سه شنبه 8 مرداد 1398
  • 06:59

سلام
اینروهم چایگزین کردم جوا ب نداد
در کانتکس کد نوشتم و بهش معرفی کردم که دقیقا چی با چی ارتباط داره و از چه نوعی هست درست شد

تشکر از همه

کاربر سایت

رضا نصیری

عضویت از 1392/10/01

  • سه شنبه 8 مرداد 1398
  • 08:37
درود در کدهای شما یجاش میلنگه که بااین کدها درست نشده. وگرنه نیازی به نوشتن map در context نبود. با DataAnnotion نیز جواب رو میشه گرفت. به هر حال... موفق باشید
کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)