Using Entity Framework with DotNetNuke

جمعه 17 خرداد 1392

Using Entity Framework with DotNetNuke <br/> اگر تا حالا با پورتال سورس باز دات نت نیوک dotnetnuke کار کرده باشید . حتما متوجه شده اید که ساختار ماژول نویسی آن مبتنی بر سه لایه است .

اگر تا حالا با پورتال سورس باز دات نت نیوک dotnetnuke  کار کرده باشید . حتما متوجه شده اید که ساختار ماژول نویسی آن مبتنی بر سه لایه است .  

 

 

اما آنچه که من می خواهم در این مطلب بیان کنم ، ماژول نویسی بر پایه orm  و بخصوص Entity Framework  است . ما می دانیم یکی از مهمترین محاسن این فریم ورک این است که ما را از شر برخی کد نویسیها بخصوص در لایه دیتا و لایه business  خلاص می کند ، علاوه بر آن دقت تولید کدهای ما نیز بالاتر می شود .

برای اینکار مراحل زیر را دنبال می کنیم . ابتدا پورتال dotnetnuke  را دانلود کنید من در اینجا نسخه 6 این پورتال رانصب کرده ام اکنون پرتال را در کامپایلر vs  باز می کنیم .

اکنون روی پوشه App_Code کلیک راست کنید و گزینه فولدر جدید را انتخاب کنید . 

 

 

 

فولدر ایجاد شده را EFNotes  نام گزاری کنید . 

 

اکنون فولدر DesktopModules   را باز کنید و بر روی آن کلیک راست کنید و فولدر جدیدی به همان نام EFNotes  در آن بسازید . 

 

فایل Web.config  را باز کنید و قسمت compilation را پیدا کنید و در زیر مجموعه codeSubDirectories فولدر جدید ایجاد شده را اعلام کنید مانند تصویر زیر :   

  

 

اکنون پرتال را اجرا کنید و به قسمت با یوزر و پاسورد میزبان وارد شوید ، سپس در قسمت میزبان host  گزینه  SQL  را برای اجرای اسکریپت ایجاد جدول انتخاب کنید و اسکریپت زیر را اجرا کنید تا جدول مورد نظر ساخته  شود . 

 

CREATE TABLE [dbo].[EF_Notes](

    [ID] [int] IDENTITY(1,1) NOT NULL,

    [Date] [datetime] NULL,

    [Message] [nvarchar](500) NULL,

 CONSTRAINT [PK_EF_Notes] PRIMARY KEY CLUSTERED

(

    [ID] ASC

)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

) ON [PRIMARY

 

پس از ایجاد جدول بالا دوباره به سورس بر می گردیم .در فولدر EFNotes  موجود در بخش APP_Code  کلیک راست می کنیم . 

 

 

 

و گزینه اضافه کردن آیتم جدید یعنی Add New Item  را انتخاب می کنیم . از پنجره باز شده گزینه

ADO.NET Entity Data Model  را انتخاب می کنیم . و کلید Add  را کلیک می کنیم . اکنون در پنجره باز شده Generate from database را انتخاب کنید . و کلید next  را بزنید . در این مرحله باید گزینه SitSqlServer  را انتخاب کنید .

 

  مجددا دکمه next را کلیک کنید و به مرحله بعدی بروید در این مرحله از بخش جدولها ، جدول  EF_Notes  را که قبلا ایجاد کرده ایم را انتخاب کنید . و بر روی دکمه Finish  کلیک کنید .اکنون برروی فایل ایجاد شده دابل کلیک کنید تا مدل خود را مطابق شکل زیر ببینید .  

 

 

 

اکنون مدل داده های ما آماده است . پس به فولدر DesktopModules  بر می گردیم و برروی فولدر EFNotes که ایجاد کرده بودیم کلیک راست می کنیم و گزینه Add New Item  را انتخاب می کنیم

 

 

 

از پنجره ظاهر شده گزینه Web User Control را انتخاب می کنیم نام فایل را view .ascx  می گزاریم مانند شکل زیر :   

 

  

دکمه Add  را کلیک کنید تا فایل مورد نظر ایجاد شود . کد زیر را در فایل جایگزین کنید . 

<%@ Control Language="C#"

AutoEventWireup="true" CodeFile="View.ascx.cs"

Inherits="DotNetNuke.Modules.EFNotes.View"

%> 

اکنون به قسمت سورس سی شارپ فایل بروید و کدهای زیر را جایگزین کنید .   

 

 

 

  اکنون گزینه طراحی Design  را کلیک می کنیم و مانند شکل زیر عمل می کنیم : 

 

 

 

 

سپس گزینه تنظیمات Configure Data Source  را انتخاب می کنیم . شما از گزینه اول  Name Connection  باید نام ارتباطی Ef  که قبلا ایجاد کرده ایم را انتخاب کنید و دکمه next  را کلیک کنید اکنون در این مرحله نام ماهیت یا در واقع نام مدل جدول را انتخاب کنید و سپس فیلدهای مورد نظرتان را از این قسمت انتخاب کنید ما در اینجا گزینه اول را انتخاب می کنیم یعنی تمام فیلدهای جدول را انتخاب کرده ایم و برای ایجاد دستورات حذف و تغییر و اضافه سه گزینه پایین را تیک می زنیم .    

 

 

اکنون یک کنترل Listview    را از جعبه ابزار انتخاب کنید و بر روی فایل قرار دهید . در اینجا شما  

باید منبع داده یعنی DataSource  را همان EntityDataSource  انتخاب کنید . پس گزینه Configure ListView  را انتخاب کنید  گزینه های  

Enable Editing ,inserting,deleting  را انتخاب کنید .

   

 

 

دکمه ok  را کلیلک کنید . اکنون پروژه را ذخیره کنید .

نکته مهم برای استفاده از Entity Framework  در dotnetnuke  شما نیاز به

Entity FrameWork Model Adapter  دارید که باید از لینک زیر آن را دانلود کنید . و سپس فایلهای مرجع زیر را به پروژه اضافه کنید .  

 

 

 

اکنون باید تنظیمات مربوط به مدل ایجاد شده در APP_Code را اعمال کنیم برای اینکار از فولدر APP_Code t فولدر EFNotes باید فایل کد سی شارپ مدل را باز کنید .   

 

 

در قسمت تعریف کلاس مدل جایی که نام کلاس تعریف می شود و پس از آن ارث بری تعریف می شود

global::System.Data.Objects.ObjectContext را حذف کنید و بجای آن عبارت زیر را بنویسید

BrandonHaynes.ModelAdapter.EntityFramework.DotNetNukeObjectContext

 

 

 

اکنون کد نویسی تمام شده ، پروژه را کامپایل کنید تا اجرا شود و سپس با یوزر hostوارد شوید . 

از host شما باید گزینه extensions و سپس گزینه create new module را انتخاب کنید . 

 

 

 

اکنون ماژول شما آماده است و کافیست تنظیمات آن را در dotnetnuke  انجام دهید . 

  
 
  

ایمان مدائنی

نویسنده 1299 مقاله در برنامه نویسان
  • C#.net
  • 2k بازدید
  • 2 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید