‫۲ سال قبل، شنبه ۲۲ مرداد ۱۴۰۱، ساعت ۱۳:۰۲
نکته تکمیلی
در صورتیکه به زمانِ الان، برای پارامتر هاتون نیاز داشتید اونو از طریق سرویس پاس بدید و متغیر رو داخل Profile به این صورت تعریف نکنید:
public class MappingProfile : Profile
{
    var now = DateTime.Now;
}
چون همون بار اول که پروژه اجرا میشه، مقدار دهی میشه و زمانش تغییر پیدا نمیکنه، DateTime.Now باید هربار از طریق سرویس از نو مقداردهی بشه.
public class MappingProfile : Profile
{
    DateTime now = default;
}
return _products
            .AsNoTracking()
            .ProjectTo<ProductInfoViewModel>(
                configuration: _mapper.ConfigurationProvider,
                parameters: new { now = DateTime.Now }
            ).SingleOrDefaultAsync(x => x.Id == id);

‫۲ سال و ۱ ماه قبل، شنبه ۲۵ تیر ۱۴۰۱، ساعت ۲۲:۲۴
نکته تکمیلی
جهت گرفتن تعداد رکورد‌های یک Navigation Property هنگام استفاده از EF میتوان از قوانین توکار خود Automapper استفاده کرد و نیازی به نوشتن ForMember وجود ندارد.
public class ProductInfoViewModel
{
    // long
    public long ProductCommentsLongCount { get; set; }

    // int
    public int ProductCommentsCount { get; set; }
}
اسم Navigation property + اسم متود، اگر کلید اصلی جدول کامنت int  باشه از ProductCommentsCount و اگر هم long باشه از ProductCommentsLongCount استفاده میکنیم. 
public class Product
{
    #region Properties

    public long Id { get; set; }

    [Required]
    [MaxLength(200)]
    public string Title { get; set; }

    public int Price { get; set; }

    #endregion

    #region Relations

    public ICollection<ProductComment> ProductComments { get; set; }

    #endregion
}

public class ProductComment
{
    #region Properties

    public int Id { get; set; }

    public string CommentBody { get; set; }

    public long ProductId { get; set; }

    #endregion

    #region Relations

    public Product Product { get; set; }

    #endregion
}

public class MappingProfile : Profile
{
    public MappingProfile()
    {
        this.CreateMap<Entities.Product, ProductInfoViewModel>();
    }
}
دیگه نیازی به نوشتن ForMember برای گرفتن Count وجود نداره.
‫۲ سال و ۳ ماه قبل، شنبه ۲۴ اردیبهشت ۱۴۰۱، ساعت ۱۶:۴۵
یا باید API جدیدی را ارائه بدهند و یا روش «تبدیل روش‌های قدیمی کدنویسی غیرهمزمان به async سی شارپ 5» در صورت امکان استفاده شود. راه حل «async واقعی» دیگری ندارد؛ مگر اینکه یک Task.Run را خودتان به آن اضافه کنید تا بر روی یک ترد دیگر اجرا شود تا UI هنگ نکند؛ مانند مثال‌های async غیرواقعی زده شده.
‫۲ سال و ۳ ماه قبل، شنبه ۲۴ اردیبهشت ۱۴۰۱، ساعت ۱۵:۱۱
برای کار با دستگاه هایی که اتصال‌ها بر پایه IntropCom هست به چه شکلی میتوان فرایند async را انجام داد؟ مثلا دستگاهی که نیاز به انجام کانکت و سایر دستور العمل‌ها دارد که همین کانکت کردن مدت زمانی طول میکشد مانند متد زیر 
device.connect(ip,port)

با توجه به اینکه دستور العمل در خارج از مرزهای اپلیکیشن انجام می‌گیرد امکان ایجاد یک متد غیرهمزمان وجود دارد؟
سلام
از دیتابیس  redis  بجای کش دات نت استفاده کردم ولی وقتی اطلاعات رو از redis میگیریم بصورت json است ، پیشنهاد میکنید چگونه json را به type خروجی متد cast کنم ؟
می‌توان به سرورهای ریموت دسترسی پیدا کرد؛ با این شرایط و دسترسی‌ها: ^ و ^ و ^ و بعد هم باید به کاربر application pool برنامه، دقیقا همین سطح دسترسی‌ها را داد که ... کسی چنین کاری را انجام نمی‌دهد. بنابراین بهترین گزینه ایجاد Web API‌های محلی در این سرورها است و کوئری گرفتن دوره‌ای از اطلاعات این Web API ها.
سلام. به نظرتون راهی وجود داره که با استفاده از متد PerformanceCounter  به مصرف منابع یک سرور ویندوزی ریموت دسترسی پیدا کنم؟ یک جورایی میخام loadbalncer رو از طریق کد پیاده سازی کنم و مسله اصلی این هست که پروژه براساس mvc5 هست و نه Core.