‫۷ سال و ۱ ماه قبل، شنبه ۲۱ مرداد ۱۳۹۶، ساعت ۲۱:۲۴
با سلام و احترام
آیا در این روش استفاده از Area به این شکل صحیح است ؟
public IEnumerable<string> ExpandViewLocations(ViewLocationExpanderContext context, IEnumerable<string> viewLocations)
        {
            // {0} - Action Name
            // {1} - Controller Name
            // {2} - Area Name

            if (context.ActionContext.RouteData.Values.TryGetValue("area", out _))
            {
                return new[]
                {
                    "/Areas/{2}/Features/{1}/{0}.cshtml",
                    "/Areas/{2}/Features/Shared/{0}.cshtml",
                    "/Features/Shared/{0}.cshtml"
                };
            }
            else
            {
                return new[]
                {
                    "/Features/{1}/{0}.cshtml",
                    "/Features/Shared/{0}.cshtml"
                };
            }
        }
و یا باید کلا Area را به زیر مجموعه فولدر Features واقع در Root پروژه منتقل کرد که البته این حالت در مورد Area‌های کوچک توصیه شد ولی در حالتی که Area دارای کنترل‌های بسیار است استانداردی مشخص نیست.
قطعه کد بالا برداشت بنده از لینک زیر است:
ASP.NET Core - Feature Slices for ASP.NET Core MVC  
سلام.امکان داره یه مثال در مورد نحوه استفاده از قطعه کد زیر که مربوط به خواص سایه ای میشه بزنید.
public static readonly Func<object, DateTimeOffset?> EFPropertyCreatedDateTime =
                                                  entity => EF.Property<DateTimeOffset?>(entity, CreatedDateTime);
به عنوان مثال سعی کردم به شکل زیر از این قطعه کد استفاده کنم ولی با پیغام
"The EF.Property<T> method may only be used within LINQ queries"
سیستم متوقف میشه.
var persons = context.Persons
                                  .Where(x => AuditableShadowProperties.EFPropertyCreatedDateTime(x) == DateTimeOffset.UtcNow)
                                  .ToList();