ورود

View Full Version : استفاده از Entity FramWork در WPF



m.bibjan
دوشنبه 05 تیر 1391, 10:50 صبح
سلام من واسه استفاده ازین تکنولوژی ازین کد استفاده میکنم.
ولی متاسفانه گیر میده.چون واسه اولین بار هم هست نمیدونم مشکلش چیه.میخواستم ببینم اصلا کد ها درست هستند.
public partial class MainWindow : Window
{
EntityFramWotkEntities bank = new EntityFramWotkEntities();

public MainWindow()
{
InitializeComponent();
}

private void Window_Loaded(object sender, RoutedEventArgs e)
{
var rs = (from p in bank.EFWork select p);
dataGrid1.DataSource = bank.EFWork;

}

private void btnInsert_Click(object sender, RoutedEventArgs e)
{
EFWork ins = new EFWork();
ins.ID = 8;
ins.name = "hakim";
ins.family = "rahimi";
ins.dadname = "babash";
ins.idpublic = "321654987";
ins.phone = "09192547606";
bank.AddToEFWork(ins);
bank.SaveChanges();
}

private void BtnDlelete_Click(object sender, RoutedEventArgs e)
{
var Query = (from p in bank.EFWork
where p.id == 1
select p).First();
bank.DeleteObject(Query);
bank.SaveChanges();
}

private void BtnUpdate_Click(object sender, RoutedEventArgs e)
{
var Query = (from p in bank.EFWork
where p.id==5
select p).Single() ;
Query.name = "mohsen";
bank.SaveChanges();
}

private void btnSelect_Click(object sender, RoutedEventArgs e)
{
var Query = (from p in bank.EFWork
where p.name.Contains("mohsen")
select p);
dataGrid1.DataSource = Query;
}
}
البته بگم اسم دیتابیسم : EntityFramWotk
و اسم جدولم :EFWork

مهدی فرزاد
دوشنبه 05 تیر 1391, 20:04 عصر
سلام
به کجای کد گیر میده!!
در ضمن من متوجه این تیکه کدت که برای Select نوشتی نمی شم در ضمن کد Delete هم چرا First ؟

m.bibjan
دوشنبه 05 تیر 1391, 21:11 عصر
سلام ممنون از توجهتون
من واسه اولین باره دارم ازین نمونه کد استفاده میکنم.
http://barnamenevis.org/showthread.php?314531-%D8%A7%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-Entity-Framework
بعد نمیدونم اسم جدولم رو اصلا نمیشناسه
بعد به AddToEFWork هم خط قرمز زیرش کشیده میشه.
نمیدونم چیکارش کنم.
کاش خودتون یه اموزش ساده میذاشتین رام میوفتادیم . فیلم و کتاب و تحقیق زیاد بوده ولی جواب گو نبوده.
و همینطور الگوی MVVM

m.bibjan
چهارشنبه 07 تیر 1391, 08:44 صبح
سلام کسی نبود این مشکل رو حلش کنه؟یه راهنمایی یه حرفی ؟

مهدی فرزاد
چهارشنبه 07 تیر 1391, 11:40 صبح
سلام
Using های لازم رو بکار بردید؟
اگر میتونید نمونه رو پیوست کنید

m.bibjan
چهارشنبه 07 تیر 1391, 14:44 عصر
سلام بفرمایید

مهدی فرزاد
چهارشنبه 07 تیر 1391, 19:49 عصر
سلام
اول ابنکه در WPF دیتاگرید خاصیت DataSource نداره باید بنویسی dataGrid1.ItemsSource

دوم این Entity شما به چه دیتابیسی کانت شده ؟؟؟
شما اصلا براش دیتابیس درست نکردید؟؟؟
فکرکنم دارید اشتباه بزرگی میکنید

m.bibjan
پنج شنبه 08 تیر 1391, 09:00 صبح
سلام
اسم دیتابیسم home هستش.
اسم TABLE هم ROOM هستش.
مگه بواسطه ModelEntity به دییتابیسم متصل نمیشم؟
چه اشتباه بزرگی دارم مرتکب میشم؟(سوالی هستش ، انکاری نیستش)
تالاری که مدیرش دست تنها باشه نمیرسه اموزش مقدماتی واسه امثال من بذاره.البته اینجور که معلومه فقط من هستم که بلد نیستم!!!

مهدی فرزاد
پنج شنبه 08 تیر 1391, 09:18 صبح
سلام
من کانکشنت رو نگاه کردم به هیج دیتابیسی در SQL اشاره نکرده! شما باید یک دیتابیس در SQL داشته باشید

m.bibjan
پنج شنبه 08 تیر 1391, 16:32 عصر
سلام مگه توی این عکس با زدن تیک رشته اتصال توی App.config ذخیره نمیشه؟
منظورتون رو متوجه نمیشم.کانکشن باید جور دیگه ایی معرفی کرد؟
همون که گفتم اقای Mehdi550u
یه اموزش باید بذارین که روند کار دست ادم بیاد.
من انواع و اقسام اموزشی ها رونگاه کردم چه زبان فارسی و چه زبان انگلیسی.ولی فایده نداشته.
توی هر کدوم از اموزشی هایی که دیدم شاخه به شاخه شده و ادم رو بیشتر گیج میکنه و ادم رو خسته میکنه.
به نظرتون تنها مشکل نمونه بالا عدم داشتن دیتابیس هستش؟
من دیتابیس دارم اسمش هم Home هستش توی عکس هم پیداست.
چطوری باید این مشکل رو حلش کنم؟

amin1softco
پنج شنبه 08 تیر 1391, 18:32 عصر
به نظرم دیتا بیس در سرور قرار داره و با این رشته بهش متصل می شه فایل ضمیمه به نحویه که به فایل ضمیمه مراجعه می کنه ولی هنوز مشکلش کامل رفع نشده

m.bibjan
پنج شنبه 08 تیر 1391, 20:20 عصر
سلام ممنون از زحمتت
من از بس که دوباره نوشتمش و راه های دیگه رو امتحان کردم به جواب نرسیدم خسته شدم
از جواب اساتید ممنونم

مهدی فرزاد
پنج شنبه 08 تیر 1391, 21:14 عصر
سلام
خوب حالا میشه این رو رفع اشکال کرد که دوست خوبمون زحمت کشید دیتابیس بهش اضافه کرد
اولین مشکل !!!
اگر خاصیت AutoGenerateColumns برابر False هست پس شما باید برای اون Columns کنید

<DataGrid AutoGenerateColumns="False" Height="245" HorizontalAlignment="Left" Margin="10,10,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="338" ItemsSource="{Binding StringFormat=\{0:F\}, Mode=OneWay}">
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding Path=id}" />
<DataGridTextColumn Header="نام" Binding="{Binding Path=name}" />
<DataGridTextColumn Header="نام خانوادگی" Binding="{Binding Path=family}" />
</DataGrid.Columns>
</DataGrid>

دوم در هنگام Update باید از Null نبودن Select اطمینان حاصل کنید ( شاید مقداری رو که جستجو کردید موجود نباشه) پس کد Uapdate شما به این شکل میشه

var Query = (from p in bank.rooms
where p.id == 5
select p).SingleOrDefault();
if (Query != null)
{

Query.name = "rahim";
bank.SaveChanges();
}

حالا اگه توی جدول شما رکوردی با id برابر 5 باشه اون رو تغییر میده