PDA

View Full Version : ارسال نتیجه Linq از لایه Dal به لایه Bll و UI



davoodrm666_666
دوشنبه 23 آذر 1388, 15:46 عصر
سلام آقا من توی یه برنامه رو با معماری سه لایه فقط Linq کارکنم مشکل من اینجاست
وقتی در لایه Dal من نتیجه رو می گیرم حالا این نتیجه رو به صورت list به لایه Bll می فرستم
اما چون لایه UI من هیچ ارتباطی با Dal نداره دیگه نمی تونم از List (of استفاده کنم. البته
من خروجی توابع Bll رو از نوع Object گذاشتم و نتیجه دستورات رو تونستم به UI بفرستم اما این روش من درست نیست از دوستان اگر کسی می تونه راهنماییم کنه



Dal class
PublicFunction Goruh_Load(OptionalByVal GrupCode AsInteger = 0) As List(Of Goruh)
Dim Load = (From p In DbSimple.Goruhs _
Where IIf(GrupCode = 0, 1 = 1, p.GrupCode = GrupCode) _
Select p).ToList
Return Load
EndFunction
---------------------------
in DLL
PublicFunction Goruh_Load(OptionalByVal GrupCode AsInteger = 0) AsObject
Return FrmBasicInformation_Dal.Goruh_Load(GrupCode)
EndFunction
----------------
IN UI
objFrmBasicInformation.Goruh_Load(0).Feildname

Ali_Mor
چهارشنبه 25 آذر 1388, 12:41 عصر
کلاس هایی مثل Goruh را در لایه ای مانند common قرار بده و تمام لایه های دیگر را مجبور به استفاده از این لایه بکن.

davoodrm666_666
یک شنبه 29 آذر 1388, 11:27 صبح
کلاس هایی مثل Goruh را در لایه ای مانند common قرار بده و تمام لایه های دیگر را مجبور به استفاده از این لایه بکن.
grouh یک Class entity از Grouh Table است و در لایه Dal قرارداره یعنی دسترسی لایه UI رو هم به این لایه بگذارم؟

Ali_Mor
سه شنبه 01 دی 1388, 12:39 عصر
در واقع کلاس DataContext می تواند نقش DAL را داشته باشد اما کلاس هایی از نوع Class entity هیچ ربطی به DAL ندارند(آیا شما در این کلاس ها متدهای Insert,update,delete می بینید؟!!)
اما چون خود visualStudio این دو نوع کلاس را با هم و در فایل های dbml تولید می کند، شاید جداسازی فیزیکی کلاس ها در لایه های گوناگون سخت باشد. اما می توانید این دو نوع کلاس را در فضای نام های متفاوت قرار دهید(جداسازی منطقی). به خصوصیات context NameSpace, Entity NameSapaceدر پنجره خصوصیات DataContext دقت نمائید....