‫۱۰ سال و ۱۰ ماه قبل، یکشنبه ۲۴ آذر ۱۳۹۲، ساعت ۲۱:۱۴
خیر. طبیعی نیست. اگر هم کش می‌شود یا این احساس را دارید، یعنی Context هنوز Dispose نشده. یک نمونه توضیحات بیشتر در اینجا:
«نکته‌ای در مورد مدیریت طول عمر اشیاء در حالت HybridHttpOrThreadLocalScoped در برنامه‌های دسکتاپ»

+ بحث سطح دوم کش (بحث جاری) کاری به Context ندارد. مستقل عمل می‌کند. در اینجا فقط از Context سؤال می‌پرسد چه کوئری قرار هست صادر شود. بعد نتیجه‌اش را از کش سیستم (و نه Context جاری) دریافت می‌کند.
‫۱۰ سال و ۱۰ ماه قبل، یکشنبه ۲۴ آذر ۱۳۹۲، ساعت ۱۴:۲۵
اگر علاقمند باشید که مدیریت تولید این Viewها را خودکار کنید می‌توانید از پروژه Interactive Pre Generated Views استفاده نمائید:
پروژه: Interactive Pre Generated Views for Entity Framework 6 

بسته نیوگت
نحوه استفاده: Using Pre-Generated Views Without Having To Pre-Generate Views  
‫۱۰ سال و ۱۰ ماه قبل، شنبه ۲۳ آذر ۱۳۹۲، ساعت ۲۱:۵۹
چرا رابطه TestParameter  و TestAcceptedValue به صورت many-to-many تعریف شده؟ رنگ خون چندین مقدار دارد، اما عکس آن صادق نیست. یعنی یک رنگ خون را نمی‌شود به چندین TestParameter مختلف مانند قند خون یا سطح فلان هورمون انتساب داد.
مثال ساده آن کاربر و نقش‌های او است. یک کاربر می‌تواند چندین نقش داشته باشد (نویسنده، ادیتور و غیره). یک نقش می‌تواند به چندین کاربر منتسب شود (مثلا نقش ادیتور را می‌شود به ده‌ها کاربر انتساب داد). یعنی می‌شود از هر طرف این رابطه، یک رکورد را به چندین رکورد طرف دیگر ربط منطقی داد. اما در حالت مداخل یک آزمایش و مقادیر مجاز جهت یک مدخل، اینچنین نیست و رابطه one-to-many است.
‫۱۰ سال و ۱۰ ماه قبل، شنبه ۲۳ آذر ۱۳۹۲، ساعت ۱۹:۰۱
عرض کردم، اینترفیس را بسط دهید؛ مثلا مانند کدهای زیر. DbEntityEntry را داخل یک متد مانند MarkAsChanged هم می‌شود محصور کرد با خروجی void. به عبارتی نحوه کار با base.Entry را بهتر می‌شود از دید مصرف کننده مخفی کرد تا حتما او نیازی نداشته باشد خودش مستقیما base.Entry(entity).State = EntityState.Modified را در کدهای نهایی مورد استفاده قرار دهد. فقط کافی باشد تا متد عمومی MarkAsChanged را که در پشت صحنه از base.Entry(entity).State استفاده می‌کند، بکارگیرد.
namespace EF_Sample07.DataLayer.Context
{
    public interface IUnitOfWork
    {
        IDbSet<TEntity> Set<TEntity>() where TEntity : class;
        int SaveAllChanges();
        void MarkAsChanged<TEntity>(TEntity entity) where TEntity : class;
    }
}

namespace EF_Sample07.DataLayer.Context
{
    public class Sample07Context : DbContext, IUnitOfWork
    {
        public DbSet<Category> Categories { set; get; }
        public DbSet<Product> Products { set; get; }

        public new IDbSet<TEntity> Set<TEntity>() where TEntity : class
        {
            return base.Set<TEntity>();
        }

        public int SaveAllChanges()
        {
            return base.SaveChanges();
        }

        public void MarkAsChanged<TEntity>(TEntity entity) where TEntity : class
        {
            base.Entry<TEntity>(entity).State = EntityState.Modified;
        }
    }
}
‫۱۰ سال و ۱۰ ماه قبل، شنبه ۲۳ آذر ۱۳۹۲، ساعت ۱۶:۳۷
اول باید با نحوه‌ی تولید و اجزای یک فایل CHM آشنا شوید: اینجا
بعد فایل hhp نهایی را به hhc.exe ارسال کنید برای کامپایل:
new Process
 {  StartInfo =
               {
                   FileName = Path.Combine(installPath, "hhc.exe"),
                   Arguments = ("\"" + path + "\\blog.hhp\""),
                   CreateNoWindow = true,
                   WorkingDirectory = blogDir,
                   UseShellExecute = false,
                   RedirectStandardOutput = true,
                   RedirectStandardError = true
                }
 }.Start();