-
توضیحاتی در مورد entity framework
این توضیحات رو چند روز قبل یعنی درست بعد از شروع بحث جالب آموزش توسط استاد gwbasic تو یه سایت خوندم گفتم بذارم دوستان هم استفاده کنن.
مطالب عینا از سایت نقل شده . دلیل اینکه برای اینکار فقط لینک معرفی نکردم اینه که دوستان با ورود به پست حداقل یه نگاه اجمالی به این موضوع داشته باشن.
آدرس سایت: http://irmeta.com/meta/index.php?topic=6232.0
بخش 1
مقدمه
مایکروسافت قبل از معرفی Entity Framework ، تکنولوژیهای ado , rdo و سرانجام ado.net را ارایه کرده بود و برای اکثر این تکنولوژیها زمان زیادی گذاشته بود ، هر کدام از اینها در زمان خود یک تکنولوژی نوینی و حرکت عظیمی بود . اما با گسترش مفاهیم شی گرایی و نیاز مبرم برنامه نویسان به ایجاد اشیا از داده ها و جداول بانکهای اطلاعاتی مایکروسافت اقدام به توسعه تکنولوژی ado.net کرد و ابتدا امکانات linq و سپس Entity Framework را برای تعامل بهتر با شی گرایی مطرح کرد .
تا قبل از آن برنامه نویسان زمان زیادی را برای برنامه نویسی اشیا جدولهای بانکهای اطلاعاتی و ارتباطات آن صرف می کردند و هر گونه تغییر در جداول بانکها مستلزم تغییرات فراوانی در کد نویسی است .
ابتدا فهرستی از ابزارهای مدل سازی را معرفی می کنم :
1-ERM یا Entity Relationship Model ابزاری برای مدل سازی پایگاههای داده ای رابطه ای .
2- UML یا Unified Modeling Language زبان استاندار ماژول سازی اشیا و کلاسها
3-ORM یا Object-Relational Mappingروشی و ابزاری برای ایجاد تعامل ماژولار میان اشیا بانکهای اطلاعاتی رابطه ای و زبانهای برنامه نویسی شی گرا
4-DFD یا Data Flow Diagram ابزاری برای نمایش نموداری از جریان داده ها و فرآیند سیستم
البته چند ORM دیگر هم وجود دارد یکی NHibernate و SPRINT.net هر دوتای آنها از جاوا مشتق شده اند و توانمنیدهای فراوانی دارند اما بحث ما Entity Framework.Net4 است .
البته لیست بالا لیست کاملی نیست و از حوصله این بحث خارج است .
قبل از ورود به بحث Entity Framework مقدمه ای در مورد Entity Data Model یا مختصرا EDM باید بیان شود .EDM در حقیقت پایه و پیش نیاز Entity Framework است و شامل سه model است
1-مدل مفهومی 2-مدل منطقی 3-مدل ذخیره سازی یا فیزیکی
ما می توانیم بگوییم که EDM یک نسخه تکامل یافته ERM است .ما در مدل EDM در مورد ساختار شی گرای business objects داده ها بحث می کنیم در حالی که در مدل ERM ما در مورد طرح بانک اطلاعاتی بحث می کنیم .که باید تفاوت میان مدل داده و مدل شی را متوجه شویم ، شکل زیر یک مدل داده را نشان می دهد در حالی که شکل بعدی مدل شی گرا از بانک اطلاعاتی ما را نشان می دهد.
-
1 ضمیمه
نقل قول: توضیحاتی در مورد entity framework
ضمیمه 78025
Entity چیست ؟
ما برای فهم Entity Framework باید ابتدا مفهوم Entity را متوجه شویم ، البته بعدا در مورد این مفصلا خواهم نوشت ولی فعلا برای فهم بیشتر مقایسه ای با object و relational data انجام می دهم
تشابه Entity با شی یا object
1- Entity مانند شی دارای انواع تعریف شده برای داده ها و فیلدها است
2- Entity مانند شی دارای خصوصیت یا properties است
3- هر Entity یک هویت متمایزی دارد
4- یک خصوصیت Entity می تواند ارجاعی به Entity دیگر باشد
تفاوت Entity با شی یا object
1 -Entity می تواند یک فیلد اصلی یا primary keys داشته باشد
2-Entity می تواند دارای ارتباطی با Entity دیگر باشدمانند ارتباطات موجود در بانک اطلاعاتی
تشابه Entity با داده رابطه ای relational data
1-Entity یک ارتباط چند گانه مانند داده ها با دیگر entity می تواند داشته باشد
2-Entity مانند داده ها می تواند کلید اصلی یا primary key داشته باشد
تفاوت Entity با داده رابطه ای relational data
1-Entity از داده ها با نوع پیچیده complex typesپشتیبانی می کند
2-Entity از وراثت موجود در کلاسها پشتیبانی می کند
3-Entity داده های فیزیکی را ذخیره نمی کند .
پس Entity Framework چیست ؟
درواقع Entity Framework تکنولوژی توسعه یافته ADO.Net است که فاصله بین برنامه نویسی شی گرایی و بانک اطلاعاتی رابطه ای را پر می کند .این فاصله معمولا تحت عنوان عدم تطابق شناخته می شود. و یک تکنیک برنامه نویسی برای تبدیل ارتباطات در Database به مفاهیم Object Oriented در برنامه نویسی است. در واقع میتوان گفت که کلاس ها را به Table ها map میکند. وقتی که شما میخواهید به Database دسترسی پیدا کنید، یا اطلاعاتی را ذخیره کنید، این کارها را مستقیما بر روی اشیاء ( Object تان ) انجام میدهید. Entity Framework مدل داده ها را به سه بخش تقسیم می کند 1-مدل مفهومی یا ادراکی 2-مدل منطقی 3- مدل فیزیکی
پایان بخش اول
-
نقل قول: توضیحاتی در مورد entity framework
وای مرسی
چه باحال بودن
برم امتحانشون کنم یاد بگیرم
بازم ممنونم:چشمک:
-
5 ضمیمه
نقل قول: توضیحاتی در مورد entity framework
بخش دوم
در بخش قبل معرفی مختصر در مورد Entity Data Moule یا مخفف EDMداشتیم ، اما در این بخش به شرح مفصلتری می پردازم
قبل از آن شما بانک اطلاعاتی northwind را آماده کنید فایل این بانک را می توانید ازلینک دانلود کنید
ایجاد یک EDM
در نسخه های قبلی Entity Framework ما فقط می توانستیم برای بانک اطلاعاتی موجود از قبل یک مدل طراحی کنیم .که ما می توانستیم برای آن یک مدل مفهومی ایجاد کنیم .درواقع ما از بانک اطلاعاتی به مدل می رسیدیم ، اما حالا می خواهیم برعکس از مدل به بانک اطلاعاتی برسیم .
از مهمترین امکانات اضافه شده به Entity Framework 4 بصورت 2 مورد زیر است :
1-Model-first : به شما اجازه می دهد که ابتدا یک empty model ایجاد کنید ، و ابتدا model خودتان را تعریف کنید و سپس بانک اطلاعاتی و mapping و کلاسها را بر اساس model تعریف شده ایجاد کنید .
2-Code-only: به شما اجازه می دهد که برای استفاده از Entity Framework با استفاده از Plain Old CLR Objects یا مختصرا
POCO درواقع Entity خود را بدون استفاده از فایل EDMX ایجاد کنید .
اکنون برای یادگیری ابتدایی سعی می کنم ابتدا بر اساس اینکه بانک اطلاعاتی موجود است یک مدل طراحی می کنیم و بعدا با مدلی سرو کار خواهیم داشت که بر عکس یعنی اول مدل بعد بانک اطلاعاتی
آموزش حالت database-first approach
ما در اینجا با بانک اطلاعاتی northwind آموزش را ارایه می دهم با sql-server 2008 R2 و Visual Studio 2010 و دانت نت 4
شما می توانید از لینک زیر بانک اطلاعاتی را دانلود کنید .
خوب اکنون پس از نصب بانک اطلاعاتی سراغ vs برویم و یک پروژه Windows Forms Application ایجاد می کنیم مطمن باشید که .Net Framework 4 انتخاب شده باشد.
اکنون در پروژه ، سراغ منوی Project بروید و گزینه Add New Item را انتخاب کنید مانند شکل زیر
ضمیمه 78084
در شکل بالا دقت کنید که از قسمت سمت راست گزینه data را انتخاب کنید و سپس گزینه ADO.NET Entity Data Model
را انتخاب کنید .با انتخاب این گزینه و وارد کردن نام مناسب ( در اینجا ما همان نام Model1.edmx را بصورت پیش فرض قبول می کنیم ) و دکمه Add را می زنیم .پس از آن وارد ویزارد Entity Data Model Wizard می شویم در این ویزارد ما گزینه
Generates from database را انتخاب می کنیم و به مرحله بعدی می رویم .در این صفحه مطابق شکل زیر :
ضمیمه 78085
ما ابتدا باید مقدار connections را مشخص کنیم پس بر روی دکمه New Connection کلیک کنید تا وارد صفحه Connection Properties بشوید در این صفحه ابتدا از قسمت نام سرور server name نام سرور بانک اطلاعاتی را انتخاب کنید و برحسب تنظیمات دستگاه شما از لیست بانکهای اطلاعاتی نام بانکnorthwind را انتخاب کنید .صفحه ویزارد شما مشابه شکل زیر خواهد شد .در این صفحه تیک مقابل جمله save entity connection ….. باعث می شود که رشته اتصال به بانک اطلاعاتی با همان نام مشخص شده در زیر آن در فایلی تحت عنوان App.config ذخیره شود .اکنون به مرحله بعد می رویم مطابق شکل زیر
ضمیمه 78086
خوب اکنون در صفحه بالا جدولهای و view ها و stored Procedure های بانک اطلاعاتی شما لیست می شوند.
در اینجا ما جدول Category و جدول products را انتخاب می کنیم و از قسمت view ها Products by Category را انتخاب می کنیم همچنین از stored procedure هم SalesByCategory را انتخاب می کنیم . و سپس دکمه finish را کلیک می کنیم .
نکته : حتما قبل از زدن دکمه finish دو تیک Pluralize و include foreign… را دیدید
Pluralize or singularize از مهمترین بهبودها در نسخه 4 EF است .در نسخه های قبلی EF خاصیت
Entity Set Name and Entity Name properties با یک نام بودند که این مساله باعث گیجی برنامه نویس می شد که خوشبختانه در این نسخه 4 امکان تفکیک براحتی فراهم شده است مثلا برای
category به شکل زیر دفت کنید
ضمیمه 78088
و در نهایت شما فایل module1.edmx را باز کنید که مطابق شکل زیر نمای جداول بانک اطلاعاتی رادر فضای ماژولار EDM نمایش می دهد ،
ضمیمه 78089
-
نقل قول: توضیحاتی در مورد entity framework
سلام
ممنون از اموزشتون
یه سوال؟
ایا توی دیزاین این مدل ها میشه رابطه های یک به چند و ... هم تعریف کرد؟
-
5 ضمیمه
نقل قول: توضیحاتی در مورد entity framework
بخش سوم
Model-First Approach
در مطالب قبلی در مورد Entity و نحوه استفاده از ویزارد برای تولید کلاس در صورت وجود بانک صحبت کردم ، اما امروز می خواهم در مورد حالتی صحبت کنم که ما مدل کلاسها را ترسیم می کنیم و از این مدل می خواهیم بانک اطلاعاتی را ایجاد کنیم ، این ویژگی از جالبترین و مهمترین ویژگیهای اضافه شده در EF4 است که مایکروسافت آن را اضافه کرده است .
مانند مقاله بخش 2 ، یک پروژه تحت ویندوز باز کنید ،از منوی Project کزینه Add New Item و سپس گزینه ADO.NET Entity Data Model را انتخاب کنید اما از پنجره ظاهر شده در زیر گزینه empty model را انتخاب کنید
ضمیمه 78208
ماژول خالی برای شما ایجاد می شود ، اکنون جعبه ابزار را باز کنید و ابزار زیر را مشاهده کنید
ضمیمه 78209
ابزارهایی را مشاهده می کنید که مختصرا آنها را توضیح می دهم.
Entity : به شما اجازه می دهد که یک Entity را ایجاد و طراحی کنید
Association : برای تعریف و ایجاد روابط میان دو عنصر Entity
Inheritance : برای ایجاد رابطه وراثت بین عناصر و کلاسهای Entity
زیاد نگران نباشید در ادامه مفصلا در مورد سه عنصر بالا توضیح خواهم داد. فعلا هدف آشنایی کلی با مفاهیم است .پس اکنون دست به کار می شویم و اولین entity را با استفاده از جعبه ابزار ایجاد می کنیم .یک Entity را از جعبه ابزار انتخاب کنید و آن را با کشیدن و رها کردن بر روی صفحه خالی ماژول بیاورید .
ضمیمه 78210
اکنون به اولین Entity ایجاد شده دقت کنید .
. یک properties دارد با نام Id است علاوه بر آن این خصوصیت یک primary Key برای این Entity ایجاد شده است .شما می توانید با انتخاب آن از شکل خصوصیات و پارامترهای آن را عوض کنید .پس از تنظیم پارامترهای دلخواه ، شما می توانید بر حسب نیازتون عناصر دیگری به Entity اضافه کنید . برای اینکار کافیست برروی Entity کلیک راست کنید و گزینه Add را انتخاب کنید .
ضمیمه 78211
اگر دقت کنید با دو گزینه scalar property , complex property مواجه می شویم ، شما نگران نباشید از بخش بعدی یعنی بخش چهارم وارد جزییات خواهیم شد و موارد را به تفصیل شرح خواهم داد .
اکنون شما گزینه scalar property را انتخاب کنید نام آن را CustomerFirstName قرار دهید و نوع آن یعنی Type را از نوع کارکتری یعنی string انتخاب کنید و بقیه را مطابق شکل زیر
ضمیمه 78212
و سپس خصوصیات دیگری را مطابق لیست زیر با نوعهای مشخص شده مانند حالت بالا اضافه کنید
CustomerLastName (String)
CustomerAddress (String)
CustomerCity (String)
CustomerState (String)
CustomerZipCode (String)
CustomerPhone (String)
ModifyDateTime (DateTime)
سپس یک Entity دیگر ایجاد کنید و عناصر زیر را به آن اضافه کنید
OrderID (int32)
CustomerID (int32)
ItemID (int32)
ModifyDateTime (DateTime)
اکنون ما 2 Entity داریم ، حالا می خواهیم یک ارتباط بین این 2 برقرار کنیم برای اینکار از جعبه ابزار Associtation را انتخاب کنید و سپس از Entity1 فیلد Id را انتخاب کنید و از Entity2 فیلد customerId را انتخاب کنید رابطه شما بین این دو فیلد مانند شکل زیر خواهد شد .
-
4 ضمیمه
نقل قول: توضیحاتی در مورد entity framework
ادامه پست 6..
ضمیمه 78213
اکنون نوبت ایجاد بانک اطلاعاتی از مدول و کلاسهای بالا است . اکنون بر روی فضای خالی از صفحه مازول کلیک راست بزنید و گزینه Generate Database From Model را انتخاب کنید صفحه زیر نمایش داده می شود .
ضمیمه 78214
در اینجا شما باید بانک اطلاعاتی و رشته اتصال را مشخص کنید .دکمه next را بزنید و به مرحله بعد بروید صفحه ای برای شما نمایش داده می شود که مجموعه دستورات DDl را برای ایجاد این جدولها در بانک اطلاعاتی را بصورت فایلی ذخیره می کند .
ضمیمه 78215
دکمه Finish را کلیک کنید تا فایل مورد نظر شما ایجاد شود که حاوی کدهایی برای ایجاد بانک اطلاعاتی است .یک فایلی با فرمت .sql خواهد بود ، همانطور که در شکل بالا می بینید .اکنون برای اجرای اسکریپت بالا در فضای خالی از کد اسکریپت کلیک راست کرده و گزینه Execute Sql را مطابق شکل زیر انتخاب کنید ، اسکریپت شما در بانک اطلاعاتی مشخص شده ایجاد خواهد شد
ضمیمه 78216
به بانک اطلاعاتی خودتان بروید تا جدولهای ایجاد شده را مشاهده کنید .
ادامه دارد..
-
نقل قول: توضیحاتی در مورد entity framework
سلام!
چند تا سوال در مورد Entity Framework داشتم.:خجالت:
نقل قول:
و یک تکنیک برنامه نویسی برای تبدیل ارتباطات در Database به مفاهیم Object Oriented در برنامه نویسی است. در واقع میتوان گفت که کلاس ها را به Table ها map میکند.
تا چه حدی از مفاهیم شیءگرایی استفاده میکند؟ (3 رکن اصلی شیءگرایی را می گویم)
به Table ها map میکند یعنی چی؟
نقل قول:
وقتی که شما میخواهید به Database دسترسی پیدا کنید، یا اطلاعاتی را ذخیره کنید، این کارها را مستقیما بر روی اشیاء ( Object تان ) انجام میدهید.
آیا این دسترسی مستقیم که گفتید به معنای "معماری متصل" است که در ADO.Net، کنار گذاشته شد؟
آیا مزایای معماری غیر متصل، که از DataSet استفاده میکند را دارد؟ (مثلا به جای اینکه 10 نفر همزمان از پایگاه استفاده کنند، 100 نفر استفاده کنند). اگر دارد، چگونه و اگر نه، آیا محدودیت تلقی نمیشود؟
ممنون از ایجاد این تاپیک.
-
نقل قول: توضیحاتی در مورد entity framework
سلام . اگه Relation ها رو توی SQL Server (دیتا بیس اصلی) مشخص کنم بهتره یا این که
توی EF Class ؟
-
نقل قول: توضیحاتی در مورد entity framework
سلام
این روشی که شما فرمودید برای SQL Express عملی نیست؟
در هنگام Generate Database From Model من نوع پایگاه داده را SQL Server DataBaseFile انتخاب کردم و در هنگام Execute Sql دچار خطا شد. البته خود فایل .mdf را ساخت ولی جداول ایجاد نشد.
-
نقل قول: توضیحاتی در مورد entity framework
نقل قول:
این روشی که شما فرمودید برای SQL Express عملی نیست؟
این مطلب رو ایشون نفرموده بودن!
در همون پست اول ایشون گفت که مطالبی که اینجا میذاره رو از اون سایت می گیره!
تقریبا میشه گفت که کپی پیست مطالب توی سایت هست. البته کپی پیست خیلی هم خوبه چون ایشون با شجاعت تمام لینک اصلی رو گذاشتن و مثل بعضی ها مطالب رو به اسم خودشون تموم نکردن.
-
نقل قول: توضیحاتی در مورد entity framework
سلام
دوست عزیز
حالا چرا ناراحت می شوید. من اصلا کاری به اینکه ایشون نوشته اند یا لینک هست، ندارم. این هم که نوشتم " شما فرمودید" می خواستم در صحبت احترام گذاشته باشم.
من این تاپیک را خوندم و یک سوال برایم پیش آمد. هر کسی هم بلد هست لطف کنه جواب بده.
در ضمن من که یادم نمی یاد مطلبی را به نام خودم زده باشم که شما این مطلب را نوشته اید.
-
نقل قول: توضیحاتی در مورد entity framework
نقل قول:
در ضمن من که یادم نمی یاد مطلبی را به نام خودم زده باشم که شما این مطلب را نوشته اید.
اصلا قصد جسارت نداشتم:خجالت:.منظورم از بعضی ها، بعضییییها بود:گیج:
این که یادآوری کردم که اون لینک اصلی مطالب هست منظورم این بود که این جا منتظر جواب موندن تقریبا بیهوده است، منم بیش از یک ماهه که سوال پرسیدم جوابی نشنیدم:ناراحت:
امیدوارم سوء تفاهمی پیش نیومده باشه.
-
نقل قول: توضیحاتی در مورد entity framework
-
نقل قول: توضیحاتی در مورد entity framework
نقل قول:
نوشته شده توسط
fakhravari
ادامه نداره پست؟
همه اش همین بود
-
نقل قول: توضیحاتی در مورد entity framework
یه سمپل ندارید که چند جدول از این روش Inser , update , ... میشوند:خجالت:
-
نقل قول: توضیحاتی در مورد entity framework
سلام
من تو پروژه ام از EF استفاده کردم ولی با یک مشکل مواجه شدم
بعد از اضافه کردن فایل edmx به پروژه وقتی اونو اجرا می کنم یه پیغام خطا میده:
Invalid token 'void' in class, struct, or interface member declaration
کسی میتونه منو راهنمایی کنه که چرا این ارور رو میده و راهکاری براش هست یا نه؟
پیشاپیش ممنون.
-
نقل قول: توضیحاتی در مورد entity framework
دوستان از این فناوری جواب گرفتین...؟
مزیتش چیه؟
.
دوستان سمپلی دارین؟
-
نقل قول: توضیحاتی در مورد entity framework
با سلام به همه دوستان
اگه بانک اطلاعاتی اکسس باشه آیا میشه از EF هم استفاده نمود ؟؟؟
-
نقل قول: توضیحاتی در مورد entity framework
با سلام.
من از EF و LAMBDA توی یک پروژه ی بزرگ تجاری به روش زیر استفاده کردم.
1) برای select از lambda استفاده کردم.
2) برای Create, Update, Delete از این روش استفاده کردم:
http://msdn.microsoft.com/en-us/libr...recommand.aspx
3) برای join های بزرگ هم از این روش استفاده کردم:
http://msdn.microsoft.com/en-us/library/bb387145.aspx
نقل قول:
نوشته شده توسط
jmfnima
با سلام به همه دوستان
اگه بانک اطلاعاتی اکسس باشه آیا میشه از EF هم استفاده نمود ؟؟؟
خیر، SQL 2005 به بالا.
نقل قول:
نوشته شده توسط
modern_amin
دوستان از این فناوری جواب گرفتین...؟
بله، در یک پروژه ی WPF با داده های زیاد
در یک فروشگاه الکترونیک با asp.net
نقل قول:
نوشته شده توسط
modern_amin
مزیتش چیه؟
استفاده از LAMBDA و LINQ
تبدیل جداول به کلاس های #C
نقل قول:
نوشته شده توسط
modern_amin
دوستان سمپلی دارین؟
شما با Entity designer در مرحله اول، زیاد سر و کار ندارید، کار اصلی شما واکشی از EF است که با کمک LINQ یا LAMBDA این کار را انجام می دهید.
http://code.msdn.microsoft.com/101-L...mples-3fb9811b
برای تبدیل LINQ به LAMBDA از نرم افزار های زیر می شود استفاده کرد
http://www.linqpad.net
http://www.sqltolinq.com
اولین نرم افزار بهتر است.
نقل قول:
نوشته شده توسط
hadi-z
سلام
من تو پروژه ام از EF استفاده کردم ولی با یک مشکل مواجه شدم
بعد از اضافه کردن فایل edmx به پروژه وقتی اونو اجرا می کنم یه پیغام خطا میده:
Invalid token 'void' in class, struct, or interface member declaration
کسی میتونه منو راهنمایی کنه که چرا این ارور رو میده و راهکاری براش هست یا نه؟
پیشاپیش ممنون.
من به این خطا بر نخوردم، کل ENTITY را پاک کن و از دوباره از دیتا بیس بگیر.
اگر این کار عملی نیست، دلیلش را بگو تا من هم یاد بگیرم.
نقل قول:
نوشته شده توسط
fakhravari
یه سمپل ندارید که چند جدول از این روش Inser , update , ... میشوند:خجالت:
http://www.dotnetspark.com/kb/2737-e...perations.aspx
-
نقل قول: توضیحاتی در مورد entity framework
با سلام
من در پرکردن گرید از Linq و EF استفاده می کنم ولی هنگامی که می خواهم روی هر کدام از ردیف های گرید کار کنم دچار مشکل می شوم ، کدهای برنامه در زیر است
private void RefreshData()
{
DataContext.Context.Refresh(RefreshMode.StoreWins, DataContext.Context.Persons);
grdPersons.DataSource = (from p in DataContext.Context.Persons
join pt in DataContext.Context.PersonType on p.PersonTypeID equals pt.PersonTypeID
select new
{
p.fName,
p.lName,
p.pName,
p.ShenasnameID,
p.Phone,
p.Mobile
} ).ToList();
}
private void btnEdit_Click(object sender, EventArgs e)
{
if(grdPersons.SelectedRows.Count !=0)
{
//در خط زیر اشکال دارم
Persons objPerson = (Persons)grdPersons.CurrentRow.DataBoundItem;
ShowEdit(objPerson, false);
}
}
private void ShowEdit(Persons objPerson,bool addingPerson)
{
EditPersonForm objEditPersonFrom = new EditPersonForm();
objEditPersonFrom.personsBindingSource.DataSource = objPerson;
if (!addingPerson)
{
objEditPersonFrom.PersonID1 = objPerson.PersonID;
objEditPersonFrom.imgPerson.ImageLocation = objPerson.Picture;
}
if (objEditPersonFrom.ShowDialog() == DialogResult.OK)
{
objPerson.Jensiat = objEditPersonFrom.cmbJens.Items[objEditPersonFrom.cmbJens.SelectedIndex].ToString();
objPerson.Picture = objEditPersonFrom.imgPerson.ImageLocation;
objEditPersonFrom.personsBindingSource.EndEdit();
if(addingPerson)
DataContext.Context.Persons.AddObject(objPerson);
try
{
DataContext.Context.SaveChanges();
}
catch{}
}
else
{
objEditPersonFrom.personsBindingSource.CancelEdit( );
}
RefreshData();
}
-
نقل قول: توضیحاتی در مورد entity framework
نقل قول:
نوشته شده توسط
saeid taheri
با سلام
من در پرکردن گرید از Linq و EF استفاده می کنم ولی هنگامی که می خواهم روی هر کدام از ردیف های گرید کار کنم دچار مشکل می شوم ، کدهای برنامه در زیر است
private void RefreshData()
{
DataContext.Context.Refresh(RefreshMode.StoreWins, DataContext.Context.Persons);
grdPersons.DataSource = (from p in DataContext.Context.Persons
join pt in DataContext.Context.PersonType on p.PersonTypeID equals pt.PersonTypeID
select new
{
p.fName,
p.lName,
p.pName,
p.ShenasnameID,
p.Phone,
p.Mobile
} ).ToList();
}
private void btnEdit_Click(object sender, EventArgs e)
{
if(grdPersons.SelectedRows.Count !=0)
{
//در خط زیر اشکال دارم
Persons objPerson = (Persons)grdPersons.CurrentRow.DataBoundItem;
ShowEdit(objPerson, false);
}
}
private void ShowEdit(Persons objPerson,bool addingPerson)
{
EditPersonForm objEditPersonFrom = new EditPersonForm();
objEditPersonFrom.personsBindingSource.DataSource = objPerson;
if (!addingPerson)
{
objEditPersonFrom.PersonID1 = objPerson.PersonID;
objEditPersonFrom.imgPerson.ImageLocation = objPerson.Picture;
}
if (objEditPersonFrom.ShowDialog() == DialogResult.OK)
{
objPerson.Jensiat = objEditPersonFrom.cmbJens.Items[objEditPersonFrom.cmbJens.SelectedIndex].ToString();
objPerson.Picture = objEditPersonFrom.imgPerson.ImageLocation;
objEditPersonFrom.personsBindingSource.EndEdit();
if(addingPerson)
DataContext.Context.Persons.AddObject(objPerson);
try
{
DataContext.Context.SaveChanges();
}
catch{}
}
else
{
objEditPersonFrom.personsBindingSource.CancelEdit( );
}
RefreshData();
}
grdPersons.DataSource = (from p in DataContext.Context.Persons
join pt in DataContext.Context.PersonType on p.PersonTypeID equals pt.PersonTypeID
select new Person2
{
p.fName,
p.lName,
p.pName,
p.ShenasnameID,
p.Phone,
p.Mobile
} ).ToList();
}
Person2 یه کلاس جدید است.
-
نقل قول: توضیحاتی در مورد entity framework
سلام ممنون از تاپیکی که گذاشتین
فقط یه سوال داشتم اون هم اینکه زمانی که از Entity Framwork استفاده می کنیم دستورات پشت صحنه ای که اجرا می شوند کجا هستند ؟
مثلا وقتی که با یک دستور ما اطلاعاتی را به جدولی اضافه می کنیم دستورات پشت صحنه ای که این خط دستور ما رو می فهمه و اجر ا می کنه کجاست ؟
ممنون
-
نقل قول: توضیحاتی در مورد entity framework
نقل قول:
نوشته شده توسط
elhamkhodaei66
سلام ممنون از تاپیکی که گذاشتین
فقط یه سوال داشتم اون هم اینکه زمانی که از Entity Framwork استفاده می کنیم دستورات پشت صحنه ای که اجرا می شوند کجا هستند ؟
مثلا وقتی که با یک دستور ما اطلاعاتی را به جدولی اضافه می کنیم دستورات پشت صحنه ای که این خط دستور ما رو می فهمه و اجر ا می کنه کجاست ؟
ممنون
تو پوشه App_Code یه فایل هم MoeelName.Designer.vb یا cs هست که همه کار ها رو انجام میده
تو خطی که اطلاعات جدید اضافه میکنی یه Break Point بذار ببینی
هیچ وقت این فایل رو تغییر نده چون به محض آپدیت کردن مدل،تغییرات اعمالی از بین میره
-
نقل قول: توضیحاتی در مورد entity framework
دوستان سلام
من از این روش استفاده کردم اما حالا برای نمایش نیاز به یه فیلد دارم که توضیح بر داده های داخل دیتابیس باشه مثلا اگه ای دی 0 بود بگه منقول واگه 1 بود بشه غیر منقول
باید حتما به مدلم اضافه کنم چون باید در گرید نمایش داده بشه
توی مدل میشه فیلدهای از نوع scaler-navigation and complex اضافه کرد اما نمی دونم چجوری ازشون استفاده کنم وشرطم برارم که اتوماتیک پر بشه
ممنون
-
نقل قول: توضیحاتی در مورد entity framework
سلام . اگه من entity رو یاد بگیرم دیگه نیاز نیست ado.net یاد بگیرم .
و اینکه linq هم همینه ؟؟
-
نقل قول: توضیحاتی در مورد entity framework
اینکه لزوما گفته بشه که دیگه نیازی نیست اونها رو استفاده کنیم هم غلطه. چون گاهی باز نیاز به استفاده اونها در محیط و شرایطش ممکنه پیش بیاد.
-
نقل قول: توضیحاتی در مورد entity framework
نقل قول:
نوشته شده توسط
parvizwpf
اینکه لزوما گفته بشه که دیگه نیازی نیست اونها رو استفاده کنیم هم غلطه. چون گاهی باز نیاز به استفاده اونها در محیط و شرایطش ممکنه پیش بیاد.
خب اینا همشون در نهایت یه کار میکنن که .
قابلیت هاشون مگه فرق داره >
-
نقل قول: توضیحاتی در مورد entity framework
نقل قول:
نوشته شده توسط
Roya.Rashidi
خب اینا همشون در نهایت یه کار میکنن که .
قابلیت هاشون مگه فرق داره >
برای تفهیم بهتر فناوری LinQ یا EF بهتره با مفاهیم ADO.net آشنایت نسبی داشته باشین
-
نقل قول: توضیحاتی در مورد entity framework
سلام یه سوال دارم
در Entity فرض کنید یک جدول به نام Test داریم
حالا من یک ردیف با فرمان زیر اضافه کردم
Entity EntObj = new Entity().Test.AddObject(TestObj);
خب اگه عبارت زیر رو اجرا کنم اطلاعات با SQL مثلا synce میشه و دیتابیس آپدیت
EntObj.savechange();
اما سوال من اینه که اگه بخوام قبل از آپدیت کردن دیتابیس از آبجکتهای اضافه شده بصورت موقت در حافظه کوئری بگیرم یا احیانا تغییرشون بدم باید چکار کنم؟