View Full Version : سوال: راهنمایی در مورد ASP.NET و Entity FrameWork
dr.undead
یک شنبه 14 شهریور 1395, 20:51 عصر
سلام
یه راهنمایی خیلی ساده از دوستان می خواستم ، من میخوام اطلاعاتی از کاربر گرفته بشه
Controller ساختم (برای اطلاعات دانشجویان)
Model هم ساختم
و DBcontext برای Model هم ساختم
public DbSet<Register> Registers { get; set; }
حالا باقیشو نمیدونم چیکار کنم که اطلاعات از طرف user وارد بشه و در دیتابیس ذخیره بشه .
لطفا اگر تسلط دارید ، خودتون به زبون ساده توضیح بدید که ماهم درک کنیم
ممنون
Moien Tajik
یک شنبه 14 شهریور 1395, 21:19 عصر
با Scaffolding بدون کد نوشتن میتونید انجام بدید .
بر روی پوشه Controllers کلیک راست کنید ، Add و Add Controller و بعدش Add controller with views , using Entity Framework . یه دیالوگ براتون باز میکنه model رو بر روی Registers ( مدل خودتون ) بزارید و تیک Create Views رو هم بزنید . خودش براتون Controller و View هارو با استفاده از model میسازه .
آموزش بصورت تصویری : http://bit.do/scaffold
dr.undead
یک شنبه 14 شهریور 1395, 21:46 عصر
با Scaffolding بدون کد نوشتن میتونید انجام بدید .
بر روی پوشه Controllers کلیک راست کنید ، Add و Add Controller و بعدش Add controller with views , using Entity Framework . یه دیالوگ براتون باز میکنه model رو بر روی Registers ( مدل خودتون ) بزارید و تیک Create Views رو هم بزنید . خودش براتون Controller و View هارو با استفاده از model میسازه .
آموزش بصورت تصویری : http://bit.do/scaffold
ممنون
این کارو کردم ولی دیالوگی که باز میشه فقط توش RouteConfig (MyWebition) هست...
آما در قسمت Data context که بازش میکنم RegisterDatabaseContext (MyWebition.Models) میبینم..
چیکار میشه کرد ؟
Moien Tajik
یک شنبه 14 شهریور 1395, 22:18 عصر
تصویری میریم جلو ...
مدل شما اسمش Register هستش ، یکبار پروژه رو Rebuild میکنیم که بشه ازش استفاده کرد . در Controller یک کنترلر جدید با Add controller with views , using Entity Framework رو میزنیم :
142403
2- بعد از کلیک یک دیالوگ باز میشه که ازتون Model و Data Context رو میخواد . Model رو Register میزاریم و برای Data Context ، علامته + رو میزنیم تا Context جدید اضافه کنیم :
142404
تیکه Generate Views و Refrence Script Libraries و Use a Layout Page رو میزنیم و Add رو میزنیم .
Controller و View ها بصورت اتوماتیک ( Scaffolding ) شروع به ساختن میشن .
در آخر پروژه رو Rebuild میکنیم و پروژه رو اجرا میکنیم . صفحه Registers/Create همون صفحه ی ساختن و وارد کردن اطلاعات هستش .
دقت کنید که Connection String رو روی Database خودتون بزارید که اطلاعات وارد دیتابیس بشه نه LocalDB .
dr.undead
یک شنبه 14 شهریور 1395, 22:36 عصر
تصویری میریم جلو ...
مدل شما اسمش Register هستش ، یکبار پروژه رو Rebuild میکنیم که بشه ازش استفاده کرد . در Controller یک کنترلر جدید با Add controller with views , using Entity Framework رو میزنیم :
142403
2- بعد از کلیک یک دیالوگ باز میشه که ازتون Model و Data Context رو میخواد . Model رو Register میزاریم و برای Data Context ، علامته + رو میزنیم تا Context جدید اضافه کنیم :
142404
تیکه Generate Views و Refrence Script Libraries و Use a Layout Page رو میزنیم و Add رو میزنیم .
Controller و View ها بصورت اتوماتیک ( Scaffolding ) شروع به ساختن میشن .
در آخر پروژه رو Rebuild میکنیم و پروژه رو اجرا میکنیم . صفحه Registers/Create همون صفحه ی ساختن و وارد کردن اطلاعات هستش .
دقت کنید که Connection String رو روی Database خودتون بزارید که اطلاعات وارد دیتابیس بشه نه LocalDB .
داداش خیلی مردی !
دمت گرم
ولی بازم توی قسمت "2" مشکل دارم . rebuild هم کردم اما نشد
کلاس register نمایش نمیده .:اشتباه:
dr.undead
یک شنبه 14 شهریور 1395, 22:40 عصر
حالا خارج از بحث اینا ، پس چه زمانی connectionString در webconfig میزاریم؟
این اطلاعات وارد sql server 2008 که روی سیستمم نصبه میره ؟
Moien Tajik
یک شنبه 14 شهریور 1395, 23:14 عصر
Model هم ساختم
عکس مدلتون رو که ساختید اینجا قرار بدید.
حالا خارج از بحث اینا ، پس چه زمانی connectionString در webconfig میزاریم؟
این اطلاعات وارد sql server 2008 که روی سیستمم نصبه میره
شما از اول ساخت برنامه میتونید connection string رو ست کنید که اطلاعات بره توی SQL Server که روی سیستمون نصب کردید ، مثل :
<connectionStrings>
<add name="WebsiteContext" connectionString="data source=DESKTOP-5PD71FO\SQLEXPRESS;initial catalog=WebsiteContext;integrated security=True;multipleactiveresultsets=True;applic ation name=EntityFramework" providerName="System.Data.SqlClient" />
</connectionStrings>
dr.undead
یک شنبه 14 شهریور 1395, 23:28 عصر
عکس مدلتون رو که ساختید اینجا قرار بدید.
شما از اول ساخت برنامه میتونید connection string رو ست کنید که اطلاعات بره توی SQL Server که روی سیستمون نصب کردید ، مثل :
<connectionStrings>
<add name="WebsiteContext" connectionString="data source=DESKTOP-5PD71FO\SQLEXPRESS;initial catalog=WebsiteContext;integrated security=True;multipleactiveresultsets=True;applic ation name=EntityFramework" providerName="System.Data.SqlClient" />
</connectionStrings>
اوه اوه سوتی دادم عجیب !
من جای ساخت کلاس توی model ، کنترلر میساختم !
اگه connectionstring ست نشه ، توی sql local میره ؟
Moien Tajik
یک شنبه 14 شهریور 1395, 23:34 عصر
پیش میاد. :لبخند:
اگه connectionstring ست نشه ، توی sql local میره ؟
بله اگه ست نکنید در فولدر App_data برنامتون براتون با فرمت mdf. یه دیتابیس LocalDB میسازه .
dr.undead
دوشنبه 15 شهریور 1395, 00:28 صبح
داداش دمت گرم
اجرت با خدا
اقا این connectionString که قرار میدم توی webconfig ، باید دیتابیسو دستی توی SQL بسازم ؟
اگر جوابت نه هستش ، پس catalog چی قرار بدم؟
Moien Tajik
دوشنبه 15 شهریور 1395, 00:40 صبح
نه دیگه داری از Code First استفاده میکنی ، توی Code First خوده Database درست میشه نیاز به ساختن دستیش نیست .
این ConnectionString رو ببین :
<connectionStrings>
<add name="WebsiteContext" connectionString="data source=DESKTOP-5PD71FO\SQLEXPRESS;initial catalog=WebsiteContext;integrated security=True;multipleactiveresultsets=True;applic ation name=EntityFramework" providerName="System.Data.SqlClient" />
</connectionStrings>
حالا رابطه Data Source که DESKTOP-5PD71FO\SQLEXPRESS رو با Server Name داخل SQL ببین :
142405
اسم هاشون باید مثل هم باشن . حالا name و catalog هم به همین صورت هستن . موقع ساختن Controller که دیالوگ برات میاد و + رو میزنی که Context رو اضافه کنی ، یه اسم بهت Suggest میکنه ، اسم catalog و name رو اون اسم میزاری که احتمالا برای شما میشه RegisterContext .
dr.undead
دوشنبه 15 شهریور 1395, 20:16 عصر
نه دیگه داری از Code First استفاده میکنی ، توی Code First خوده Database درست میشه نیاز به ساختن دستیش نیست .
این ConnectionString رو ببین :
<connectionStrings> <add name="MyWebition.Models.MyWebitionContext" connectionString="data source=.;initial catalog=MyWebition.Models.MyWebitionContext;User ID=sa;Password=123456aA;integrated security=True;multipleactiveresultsets=True;applic ation name=EntityFramework" providerName="System.Data.SqlClient" />
</connectionStrings>
حالا رابطه Data Source که DESKTOP-5PD71FO\SQLEXPRESS رو با Server Name داخل SQL ببین :
142405
اسم هاشون باید مثل هم باشن . حالا name و catalog هم به همین صورت هستن . موقع ساختن Controller که دیالوگ برات میاد و + رو میزنی که Context رو اضافه کنی ، یه اسم بهت Suggest میکنه ، اسم catalog و name رو اون اسم میزاری که احتمالا برای شما میشه RegisterContext .
داداش مشکل این connectionString کجاست ؟
<connectionStrings> <add name="MyWebition.Models.MyWebitionContext" connectionString="data source=.;initial catalog=MyWebition.Models.MyWebitionContext;User ID=sa;Password=123456aA;integrated security=True;multipleactiveresultsets=True;applic ation name=EntityFramework" providerName="System.Data.SqlClient" /> </connectionStrings>
و این ارورو میده وقتی به صفحه registers میرم.
Additional information: No connection string named 'MyWebitionContext' could be found in the application config file.
در ضمن یه سوال دیگه
چرا دوتا web.config هست توی پروژه ؟
یکی توی view و دیگری در solution .
من این کدارو در web.config قرار دادم که در view هستش
moradian
دوشنبه 15 شهریور 1395, 20:21 عصر
سلام دوست من. دوره های آموزشی MVC و EF موجود در لینک های زیر رو یه بار با دقت مطالعه کنید همه چی دستتون میاد. ظاهرا هنوز با ساختار این ها مشکل دارید:
دوره آموزش ASP.Net MVC (http://www.dotnettips.info/post/803/asp-net-mvc-1)
آموزش EF Code First (http://www.dotnettips.info/post/831/ef-code-first-1)
پیشنهاد می کنم در هر مقاله بخش سوال و جواب های انتهای مربوط به آن را نیز با دقت مطالعه فرمایید خیلی ارزشمنده.
صبر تلخ است ولیکن بر شیرین دارد :)
موفق باشید
dr.undead
دوشنبه 15 شهریور 1395, 21:08 عصر
سلام دوست من. دوره های آموزشی MVC و EF موجود در لینک های زیر رو یه بار با دقت مطالعه کنید همه چی دستتون میاد. ظاهرا هنوز با ساختار این ها مشکل دارید: http://www.dotnettips.info/post/803/asp-net-mvc-1"]دوره (" http://www.dotnettips.info/post/831/ef-code-first-1"]آموزش ("[url) EF Code First پیشنهاد می کنم در هر مقاله بخش سوال و جواب های انتهای مربوط به آن را نیز با دقت مطالعه فرمایید خیلی ارزشمنده. صبر تلخ است ولیکن بر شیرین دارد :) موفق باشید
ممنون ازینکه نظرتونو دادید ! :)
جا داره از صبر و حوصله و راهنمایی های آقای تاجیک تشکر ویژه کنم...
ممنون آقای تاجیک
Moien Tajik
دوشنبه 15 شهریور 1395, 22:06 عصر
داداش مشکل این connectionString کجاست ؟
<connectionStrings> <add name="MyWebition.Models.MyWebitionContext" connectionString="data source=.;initial catalog=MyWebition.Models.MyWebitionContext;User ID=sa;Password=123456aA;integrated security=True;multipleactiveresultsets=True;applic ation name=EntityFramework" providerName="System.Data.SqlClient" /> </connectionStrings>
و این ارورو میده وقتی به صفحه registers میرم.
Additional information: No connection string named 'MyWebitionContext' could be found in the application config file.
در ضمن یه سوال دیگه
چرا دوتا web.config هست توی پروژه ؟
یکی توی view و دیگری در solution .
من این کدارو در web.config قرار دادم که در view هستش
فایل Web.config داخل View استفاده هایی مثل جلوگیری کاربران برای دسترسی مستقیم به View هارو داره که جای قرار دادن connection string نیستش .
توضیحات بیشتر : http://stackoverflow.com/a/517208
connection string در داخل web.config بیرون از view در داخل <configuration> به این صورت قرار میگیره :
<configuration>
<configSections>
...
</configSections>
<connectionStrings>
<add name="WebsiteContext" connectionString="data source=DESKTOP-5PD71FO\SQLEXPRESS;initial catalog=WebsiteContext;integrated security=True;multipleactiveresultsets=True;applic ation name=EntityFramework" providerName="System.Data.SqlClient" />
</connectionStrings>
...
</configuration>
نحوه قرار دادن name و catalog هم نباید MyWebition.Models.MyWebitionContext باشه و فقط MyWebitionContext رو قرار بدید .
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.