PDA

View Full Version : مشکل با EF . برنامه ثبت، ویرایش و حذف نمی کند



programer97
سه شنبه 04 تیر 1392, 10:01 صبح
سلام .
من میخوام یک پروژه رو بنویسم با Entity Framework ولی وقتی پروسیجر هارو به مدلم اضاف میکنم (Update Model From Database) تو پنجره Output با چنین اروری مواجه میشم.
The model was generated with warnings or errors.
Please see the Error List for more details. These issues must be fixed before running your application.
Loading metadata from the database took 00:00:05.7662864.
Generating the model took 00:00:02.5017306.

و بعد از اجرای پروژه با چنین اروری مواجه میشم.
http://up.download.ir/di/3WEN/123.jpg

programer97
سه شنبه 04 تیر 1392, 11:57 صبح
سلام
یعنی واقعا کسی نیست که با EF کار کرده باشه و به چنین مشکلی خورده باشه ؟

mossaferin
سه شنبه 04 تیر 1392, 17:00 عصر
اگه تونستی قسمتهای مربوط به دیتابیس برنامه رو بگذار تا ببنیم مشکلش چیه

programer97
چهارشنبه 05 تیر 1392, 13:32 عصر
سلام
فایل های پروژه .
پروژه و بانک اطلاعاتی رو گذاشتم وفقط چند نکته که باید بگم اینه که
من سه تا پروژه رو تو solution ایجاد کردم برای برنامه نویسی سه لایه
لایه User access برای فرم ها
لایه BL که اشتباها BAL نام گذاری کردم برای ارتباط بین لایه ها
لایه DAL برای ارتباط با بانک اطلاعاتی که EF پروژه من تو این لایه است.
ارتباط پروژه رو با بانک برقرار کنید و برنامه را اجرا کنید . و ارور را مشاهده کنید
فایلو با 7zip فشرده کردم.
ممنون از لطفتون

پروژه اینجاست (http://uplod.ir/xv8mmoamtf7j/Archive.7z.htm)

csvbcscp
چهارشنبه 05 تیر 1392, 14:08 عصر
برای نوشتن پروژه چند لایه اصلاً روش خوبی رو انتخاب نکردی،پیشنهاد من به شما اینه که اگه برات امکان پذیره از روش CodeFirst استفاده کنی، چون خطایابیش خیلی آسون تره
اما اگه مایلی از این روش برای نوشتن پروژه خودت استفاده کنید مراحل زیر رو دنبال کن شاید درست بشه
فایل کانفیگ رو در پروژه DAL حذف کن
فایل Edmx رو هم حذف کن
دوباره فایل Edmx رو درست کن..
حالا پروژه رو اجرا کن

بابت سوال خوبت هم متشکرم
علی بیات

mossaferin
یک شنبه 09 تیر 1392, 19:06 عصر
سلام

منم پروژه رو نگاه کردم ، (وهمچنین اجرا ... البته بدون اون اشکالی که گفتی اجرا شد) با نظر دوستمون موافقم که
برای نوشتن پروژه چند لایه اصلاً روش خوبی رو انتخاب نکردی به نظر من نیازی به جداکردن پروژه ها برای جدا کردن لایه ها نداشتی
به نمونه کدهای زیر برای کار با EF یه نگاهی بنداز .... خیلی مشکل نیست




SampleEntities Context = new SampleEntities();
// Select from table
var persons = (from p in Context.People
select p).ToList();
GridView1.DataSource = persons;
GridView1.DataBind();


//insert into table
Person person = new Person()
{
PersonName = txtName.Text,
PersonAge = Convert.ToInt32(txtAge.Text)
};
Context.People.AddObject(person);
Context.SaveChanges();
//update table
var person = (from p in Context.People
where p.PersonID == 8
select p).FirstOrDefault();
person.PersonAge=10;
Context.SaveChanges();

//delete from table
(from p in Context.People
where p.PersonName == "Majid"
select p).ToList().ForEach(Context.DeleteObject);
Context.SaveChanges();







موفق باشی