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

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

کاربر سایت

alone.m2a

عضویت از 1393/08/03

خطای IDENTITY_INSERT is set to OFF.

  • یکشنبه 26 اردیبهشت 1395
  • 02:21
تشکر میکنم

سلام میخوام یه رکورد به جدول order اضافه کنم اما این خطا رو میده

Cannot insert explicit value for identity column in table 'Orders' when IDENTITY_INSERT is set to OFF.

کلاس order

public partial class Order
    {
        public Order()
        {
            OrderAdditionalItems = new HashSet<OrderAdditionalItem>();
            OrderItems = new HashSet<OrderItem>();
            OrderPayments = new HashSet<OrderPayment>();
        }
        
        public int ID { get; set; }

        public DateTime ODate { get; set; }

        public int UserID { get; set; }

        public int TransferID { get; set; }

        public decimal TransferCost { get; set; }

        public int AddressID { get; set; }

        public int Status { get; set; }

        [StringLength(50)]
        public string TransferCode { get; set; }

        public string CustomData { get; set; }

        public virtual ICollection<OrderAdditionalItem> OrderAdditionalItems { get; set; }

        public virtual ICollection<OrderItem> OrderItems { get; set; }

        public virtual ICollection<OrderPayment> OrderPayments { get; set; }

        public virtual TransferType TransferType { get; set; }

        public virtual UserProfile UserProfile { get; set; }
    }

کد اضافه کردن

 Order openorder = new Order();
                    openorder.Status = (int)OrderStatus.Open;
                    openorder.UserID = userid;
                    openorder.ODate = DateTime.Now;
                    openorder.TransferID = db.TransferTypes.FirstOrDefault().ID;
                    openorder.AddressID = db.UserAddresses.FirstOrDefault().ID;
                    db.Orders.Add(openorder);
                    db.SaveChanges();

dbcontex

 modelBuilder.Entity<Order>()
                .Property(e => e.TransferCost)
                .HasPrecision(18, 4);

            modelBuilder.Entity<Order>()
                .HasMany(e => e.OrderAdditionalItems)
                .WithRequired(e => e.Order)
                .WillCascadeOnDelete(false);

            modelBuilder.Entity<Order>()
                .HasMany(e => e.OrderItems)
                .WithRequired(e => e.Order)
                .WillCascadeOnDelete(false);

            modelBuilder.Entity<Order>()
                .HasMany(e => e.OrderPayments)
                .WithRequired(e => e.Order)
                .WillCascadeOnDelete(false);


جدول

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

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

ایمان مدائنی

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

  • یکشنبه 26 اردیبهشت 1395
  • 08:03

آیا ستون ID را Auto Increment کردید ؟

کاربر سایت

سجاد باقرزاده

عضویت از 1392/02/24

  • یکشنبه 26 اردیبهشت 1395
  • 08:04

ID های TransferID و AddressID را جدا گانه در یک متغیر بگیرید و سپس به مدل خود بدهید. سپس جدول اضافه کنید :

var tId = db.TransferTypes.FirstOrDefault().ID;
openorder.TransferID = tID;

 

کاربر سایت

alone.m2a

عضویت از 1393/08/03

  • یکشنبه 26 اردیبهشت 1395
  • 11:53

آقای مدائنی ،

آقای باقر زاده این راه هم جواب نداد.

کاربر سایت

افشین ایمانی زاده

عضویت از 1393/12/24

  • یکشنبه 26 اردیبهشت 1395
  • 12:05

دوست عزیز شما TransferCode و CustomData  رو کجا پر می کنید ، چون هر دو فیلد required هستند و حتما باید پر شوند؟

کاربر سایت

alone.m2a

عضویت از 1393/08/03

  • یکشنبه 26 اردیبهشت 1395
  • 13:06

requred نیستند نوی عکس نشون دادم allow null همه به غیر از ID مقدار true دارند

کاربر سایت

alone.m2a

عضویت از 1393/08/03

  • سه شنبه 28 اردیبهشت 1395
  • 09:20

مشکل از ریلیشن هام بود دوباره ست کردم و مدل هامو ساختم smiley

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

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

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

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