‫۱۰ سال و ۱۰ ماه قبل، چهارشنبه ۲۷ آذر ۱۳۹۲، ساعت ۰۴:۵۱

سلام

(نوع stub همانند فریم ورک mock می‌باشد )

تعریفی که از stup تو راهنماش اومده با مطلبی که شما ذکر کردید متفاوته

Martin Fowler’s article Mocks aren’t Stubs compares and contrasts the underlying principles of Stubs and Mocks. As outlined in Martin Fowler’s article, a stub provides static canned state which results in state verification of the system under test, whereas a mock provides a behavior verification of the results for the system under test and their indirect outputs as related to any other component dependencies while under test

‫۱۱ سال و ۲ ماه قبل، یکشنبه ۱۳ مرداد ۱۳۹۲، ساعت ۱۸:۱۵
درسته محسن خان-  متد الحاقی ToDataSourceResult  در خواست رو می‌گیره و.... 
بحث سر این بود که هیچ کامپوننتی وجود خارجی نداره که قسمت مدیریت سمت بانک اطلاعاتی رو هم خودش به تنهایی انجام بده  
آره شیء DataSourceRequest شامل PageNumber  , PageSize , .... میشه
  ولی دیگه ما کاری بهش نداریم و خودش صفحه بندی رو انجام می‌ده حالا به طریقی
نمیشود گفت اگر ما از IQueryable  استفاده کردیم حتما لایه بندی ما مشکل داره
‫۱۱ سال و ۲ ماه قبل، یکشنبه ۱۳ مرداد ۱۳۹۲، ساعت ۰۹:۱۹
کد Razor - کد VB - خروجی SQL
   @(Html.Kendo.Grid(Of Models.vProject).Name("ProjectsGrid") _
        .Columns(Sub(column)
                         With column
                             .Bound(Function(p) p.ProjectId).Hidden()
                             .Bound(Function(p) p.Supervisor).Title("ناظر")
                             .Bound(Function(p) p.MapNumber).Title("شماره نقشه")
                             .Bound(Function(p) p.MapCode).Title("کد نقشه")
                             .Bound(Function(p) p.NewStructureArea).Title("متراژ")
                             .Bound(Function(p) p.NumberOfFloors).Title("تعداد طبقات")
                             .Bound(Function(p) p.InsuranceName).Title("بیمه")
                         End With
                 End Sub).Pageable(Sub(p)
                                           p.Enabled(True)
                                           p.Info(True)
                                           p.PageSizes(True)
                                           p.Messages(Sub(m)
                                                              m.Display("{0} - {1} از {2} رکورد")
                                                              m.Empty("رکوردی برای نمایش وجود ندارد")
                                                              m.Of("از")
                                                              m.Page("صفحه")
                                                              m.ItemsPerPage("رکورد در هر صفحه")
                                                              m.Refresh("بروزرسانی")
                                                      End Sub)
                                   End Sub).Selectable(Sub(s) s.Enabled(True).Mode(GridSelectionMode.Single).Type(GridSelectionType.Row)) _
                                                  .DataSource(Sub(ds) ds.Ajax.ServerOperation(True).Read("GetProjects", "Home") _
                                                                  .Model(Sub(m) m.Id(Function(modelId) modelId.ProjectId)))
    )
 <HttpPost>
        Function GetProjects(<DataSourceRequest> request As DataSourceRequest) As JsonResult
            Return Json(db.vProjects.ToDataSourceResult(request))
        End Function
SELECT TOP (5) [Extent1].[ProjectId]        AS [ProjectId],
               [Extent1].[Supervisor]       AS [Supervisor],
               [Extent1].[MapCode]          AS [MapCode],
               [Extent1].[MapNumber]        AS [MapNumber],
               [Extent1].[EmployerName]     AS [EmployerName],
               [Extent1].[InsuranceName]    AS [InsuranceName],
               [Extent1].[NewStructureArea] AS [NewStructureArea],
               [Extent1].[NumberOfFloors]   AS [NumberOfFloors]
FROM   (SELECT [Extent1].[ProjectId]                                  AS [ProjectId],
               [Extent1].[Supervisor]                                 AS [Supervisor],
               [Extent1].[MapCode]                                    AS [MapCode],
               [Extent1].[MapNumber]                                  AS [MapNumber],
               [Extent1].[EmployerName]                               AS [EmployerName],
               [Extent1].[InsuranceName]                              AS [InsuranceName],
               [Extent1].[NewStructureArea]                           AS [NewStructureArea],
               [Extent1].[NumberOfFloors]                             AS [NumberOfFloors],
               row_number() OVER (ORDER BY [Extent1].[ProjectId] ASC) AS [row_number]
        FROM   (SELECT [vProject].[ProjectId]        AS [ProjectId],
                       [vProject].[Supervisor]       AS [Supervisor],
                       [vProject].[MapCode]          AS [MapCode],
                       [vProject].[MapNumber]        AS [MapNumber],
                       [vProject].[EmployerName]     AS [EmployerName],
                       [vProject].[InsuranceName]    AS [InsuranceName],
                       [vProject].[NewStructureArea] AS [NewStructureArea],
                       [vProject].[NumberOfFloors]   AS [NumberOfFloors]
                FROM   [dbo].[vProject] AS [vProject]) AS [Extent1]) AS [Extent1]
WHERE  [Extent1].[row_number] > 5
ORDER  BY [Extent1].[ProjectId] ASC

‫۱۱ سال و ۲ ماه قبل، یکشنبه ۱۳ مرداد ۱۳۹۲، ساعت ۰۴:۴۳
گفتم که خودش مدیریت می‌کنه یعنی اینکه اطلاعات Skip , Take  رو نمی‌خواد بهش بدی و خودش اینکار رو انجام میده- من دارم ازش تو پروژم استفاده میکنم - کل اطلاعات رو واکشی نمی‌کنه و همون 20رکورد فرضا صفحه 3 رو واکشی میکنه
‫۱۱ سال و ۸ ماه قبل، یکشنبه ۲۲ بهمن ۱۳۹۱، ساعت ۰۰:۴۴

تکرار داده در جداول مختلفی که به آن ارتباط پیدا می‌کنند ??

تکرار چه داده ای؟

سعید جان مطمئنا کلید شما تو جداول برای رابطه استفاده میشه حالا چه طبیعی باشه چه جانشین.

با فرض اینکه با 10 جدول ارتباط داشته باشه با n تعداد رکورد . حالا 6 ماهی یک بار این اتفاق چه ایرادی داره؟

بگذریم . موفق باشید

‫۱۱ سال و ۸ ماه قبل، شنبه ۲۱ بهمن ۱۳۹۱، ساعت ۲۳:۴۷

سعید جان میدونم که اینکار میشه- مطمئنا شماره ملیشون رو  uniqe کردم!

ما برای انتخاب کلید اصلی دو حالت داریم -

1- استفاده از کلیدهای طبیعی  مثل شماره پرسنلی

2- استفاده از کلیدهای جانشین مثل یک فیلد identity - این حالت موقعی استفاده میشه که کلید طبیعی نداشته باشیم