با سلام من یک وب سایت دارم که با webform نوشتم ولی حالا دارم این وب سایت رو به MVC5 تغییر میدم و احتیاج دارم با کدی که می نویسم اطلاعات را از سایت قدیمی به سایت جدید منتقل کنم که برای این کار کد زیر را نوشتم
foreach (DataRow row in mydatatable.Rows) { id = Guid.NewGuid(); article.ID = id; body = row["News"].ToString(); body = System.Text.RegularExpressions.Regex.Replace(body, "<.*?>", string.Empty); article.Body = body; Category = new Guid("b705631f-40c1-4e45-a543-5a72ed0a3da0"); article.Category_ID = Category; article.CreateByUser = "nahravan.a@gmail.com"; article.CreateDate = DateTime.Now; article.Hit = 1; article.Image = row["Picture"].ToString(); article.Meta_Data = "meta"; metaDesc = row["Summary"].ToString(); len = metaDesc.Length; if (len >= 250) { article.Meta_Description = metaDesc.Substring(0, 250); } else { article.Meta_Description = metaDesc.Substring(0, len); } article.StatusField = "Publish"; article.Title = row["Title"].ToString(); article.Type = "0"; db.Articles.Add(article); db.SaveChanges(); }
اما وقتی که پروژه را اجرا میکنم با کد خطایی روبرو میشوم که احتمالا مربوط به پراپرتی ID است که از نوع GUID هستش
البته ناگفته نمونه که 2 یا 3 رکورد اول منتقل میشه بعد برنامه به error میرسه که نمیدونم دلیلش چیه
An exception of type 'System.InvalidOperationException' occurred in EntityFramework.dll but was not handled in user code
Additional information: The property 'ID' is part of the object's key information and cannot be modified.
بعد از 5 ساعت تلاش کردن به جواب رسیدم
و دوست دارم جواب را داخل سایت منتشر کنم تا شاید یک نفر دیگه مثل خودم 5 ساعت براش وقت نزاره (:
مشکل اینجا بود که دفعه اول که foreach اجرا میشد شی article که داخلش داده هایی بود new نمیشد
من داخل خود حلقه شی article را تعریف کردم مشکل حل شد
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)