ورود

View Full Version : سوال: مشکل درج در یک جدول با توجه به لیستی از داده ها به وسیله انتیتی



zahrashoja
پنج شنبه 09 شهریور 1391, 12:41 عصر
میخوام با توجه به تعدادی از آی دی های کاربران برای اونها در جدول جدیدی درج انجام بدم.. کد زیر رو نوشتم که خطا داره:


usend2 = (from row in con.User where row.user_of == age & (row.access_level == 2 || row.access_level == 3 || row.access_level == 4) select row).ToList();

foreach (User item in usend2)
{
agencyEntities a = new agencyEntities();
Message2 m2 = new Message2();
m2.m_id = idsend2;
m2.status = false;
m2.r_id = item.user_id;
a.AddToMessage2(m2);
a.SaveChanges();
}


خطا داره که:
Unable to update the EntitySet 'Message2' because it has a DefiningQuery and no <InsertFunction> element exists in the <ModificationFunctionMapping> element to support the current operation.

چکار کنم؟؟؟؟

alitavakoli
پنج شنبه 09 شهریور 1391, 12:57 عصر
کدتون رو به این صورت تغییر بدید:

usend2 = (from row in con.User where row.user_of == age & (row.access_level == 2 || row.access_level == 3 || row.access_level == 4) select row).ToList();

foreach (User item in usend2)
{
agencyEntities a = new agencyEntities();
Message2 m2 = new Message2();
m2.m_id = idsend2;
m2.status = false;
m2.r_id = item.user_id;
a.AddToMessage2(m2);
}
a.SaveChanges();

در انتیتی فریم ورک برای آپدیت کردن تعدادی فیلد ابتدا تغییرات رو باستی در table اعمال کنید و در انتها عمل ذخیره سازی رو انجام بدین.
راه دوم:
استفاده از using هست که به این صورته:

usend2 = (from row in con.User where row.user_of == age & (row.access_level == 2 || row.access_level == 3 || row.access_level == 4) select row).ToList();

foreach (User item in usend2)
{
using agencyEntities a= new agencyEntities())
{
Message2 m2 = new Message2();
m2.m_id = idsend2;
m2.status = false;
m2.r_id = item.user_id;
a.AddToMessage2(m2);
a.SaveChanges();
}
}

zahrashoja
پنج شنبه 09 شهریور 1391, 13:09 عصر
ممنون دوست عزیز اما اینا رو امتحان کردم ولی همون خطا رو روی خط save changs میده بازم وقتی میخوام درج رو انجام بدم

alitavakoli
پنج شنبه 09 شهریور 1391, 13:25 عصر
پس حتما primary key رو داخل جدولتون تعریف نکردید
کلید اصلی رو داخل تیبلتون تعریف کنید مشکلتون رفع میشه.

zahrashoja
پنج شنبه 09 شهریور 1391, 13:38 عصر
پس حتما primary key رو داخل جدولتون تعریف نکردید
کلید اصلی رو داخل تیبلتون تعریف کنید مشکلتون رفع میشه.
یک دنیا ممنون .... داشت اشکم در میومد
باید بیشتر حواسمو جمع می کردم ..شرمنده

alitavakoli
پنج شنبه 09 شهریور 1391, 13:44 عصر
خواهش میکنم به وب سایت ما هم سربزنید