‫۱۰ سال و ۹ ماه قبل، سه‌شنبه ۲۶ آذر ۱۳۹۲، ساعت ۱۷:۲۶
در مورد پاسختون من Context رو Dispose می کردم و مشکلم ربطی به اون نداشت.بعد از گشتن‌های زیاد متوجه شدم که مشکل اینجاست که Context دوم که داده‌ی به روز شده رو لود نمیکنه قبل از context ی که داده‌ها رو تغییر داده ایجاد شده(مثلا دو فرم رو تصور کنید که همزمان بازند و دومین فرمی که باز شده تغییرات رو انجام داده،وقتی دوباره به فرم اول بر میگردیم تغییرات وجود ندارند).من مشکل رو متوجه شدم اما دلیلشو نفهمیدم .اینطور به نظر میرسه که دفعه اولی که یک کوئری  اجرا می‌شه اون رو cash میکنه و دفعه‌های بعدی دیگه سمت دیتابیس نمیره.
‫۱۰ سال و ۱۰ ماه قبل، یکشنبه ۲۴ آذر ۱۳۹۲، ساعت ۱۹:۱۹
سلام.
من به ازای هر viewmodel  یک context ایجاد میکنم.خصوصیات یک entity را در یک context تغییر می‌دهم.اما تغییرات را در context بعدی ندارم.
-آیا همچین چیزی طبیعیه؟ 
-بنابراین  مجبورم  از context.Entry(entity1).Reload استفاده کنم. اما مشکل اینجاست که این دستور relation‌ها را فراخوانی مجدد نمی‌کند.مشکل من اینه که اگر نتونیم ازاین navigation property‌ها استفاده کنیم و بخواهیم از dbset‌های خودشون مستقیم دیتا رو لود کنیم که استفاده این خصوصیات چیه؟!
-و البته سوال دیگر من اینه که این اطلاعات چه موقع cash می‌شوند؟چون اینطور به نظر میرسه که در اولین فراخوانی از دیتابیس کش شده اند (بدون توجه به شی context) و حالا در همه context‌های بعدی از همانجا لود میشوند.
‫۱۰ سال و ۱۰ ماه قبل، چهارشنبه ۲۹ آبان ۱۳۹۲، ساعت ۱۹:۱۰
-الان یکبار دیگه یه پروژه کوچیک با EF6 ایجاد کردم و مشکلی نداشت.آیا امکانش هست مربوط به ورژن EFم باشه؟
‫۱۰ سال و ۱۰ ماه قبل، چهارشنبه ۲۹ آبان ۱۳۹۲، ساعت ۱۸:۳۷
connectionStrings   رو به این دو صورت میگذارم: 

 <add name="TestContext"
           connectionString="Data Source=localhost;Initial Catalog=Test;User ID=sa;Password=123;MultipleActiveResultSets=True;"
           providerName="System.Data.EntityClient" />
و
<add name="TestContext"
         connectionString="Data Source=localhost;Initial Catalog=Test;Integrated Security=True"
         providerName="System.Data.EntityClient" />
هر دو یه مشکل رو دارند.فکر نمی‌کنم چون اگر مشکل دسترسی اکانت بود منطقا بدون Migration هم باید خطا می‌داد؟!
‫۱۰ سال و ۱۰ ماه قبل، چهارشنبه ۲۹ آبان ۱۳۹۲، ساعت ۱۸:۰۹
سلام و وقتتون بخیر
ممنون بابت مطلبتون.من دقیقا طبق مطلب شما Migrations رو پیاده کردم.اما یه مشکل دارم.اونم اینه که وقتی دیتابیسم برا اولین بار میخواد ساخته بشه ،خطای لاگین میده:
Cannot open database "Test" requested by the login. The login failed.
Login failed for user 'sa'.

البته این خطا فقط در صورتی داده میشه که مهاجرت خودکار فعال شده باشه،اگر این خط رو کامنت کنم دیتابیس بدون مشکل ساخته میشه:
Database.SetInitializer(new MigrateDatabaseToLatestVersion<CommonContext, Configuration>());
با توجه به مطلب شما حدس می‌زدم به خاط نکته ای باشه که در مورد جدول  dbo.__MigrationHistory  گفتید.اما با استفاده از این لینک جدول رو از اول به صورت غیر سیستمی میسازم اما بازم مشکل دارم.البته دیتا بیس ایجاد میشه،فقط جدول dbo.__MigrationHistory  رو میسازه و بعدش خطایی که گفتم رو میده.
ممنون.
سلام.ممنون بابت مطلب خوبتون.
Hooking یکی از مفاهیم جالب و خیلی کاربردی هست.یکی از استفاده‌های خوبش زمانیه که یکی از دکمه‌های پر استفاده کیبوردتون خراب شده و امکان تعمیر سخت افزاریش وجود نداره.به جای عوض کردن کیبورد مخصوصا وقتی لپ تاپ باشه،به راحتی می‌تونید کیبوردتون رو Hook کنید و یکی از کلید‌های کم مصرف‌تر رو جایگزین کلید خراب کنید!
‫۱۱ سال و ۳ ماه قبل، سه‌شنبه ۴ تیر ۱۳۹۲، ساعت ۱۹:۰۴
راستش هنوز این مشکل برای من حل نشده،اینطور که من فهمیدم برای حذف یه فرزند باید مستقیما خودش رو  حذف کنیم،با استفاده از حذف کردنش از Collection مربوط به والدش نمیشه،درسته؟ببینید نمیخوام والد رو حذف کنم،میخام از طریق لیستی که از فرزندها توی والد هست یکی از فرزندها رو حذف کنم.آیا امکانش هست؟
Project.ProjectRowCollection.Remove(ProjectRowItem);
یعنی من مجبورم تو مثال بالا مستقیم ProjectRowItem  رو حذف کنم با استفاده از دستور بالا نمیشه؟!
‫۱۱ سال و ۵ ماه قبل، سه‌شنبه ۱۰ اردیبهشت ۱۳۹۲، ساعت ۲۰:۳۸
ممنون از مطلب خوبتون.
برای جدول‌های زیاد که توی یک  DbContext اضافه شدند،برای اولین لود و ذخیره زمان خیلی زیادی گرفته میشه و البته pre-generating views هم فایده نداشته!و از طرف دیگه توی برنامه مجبورم برای اینکه دیتا رو از دیتابیس بگیرم یکبار DbEntityEntry<TEntity>(entityToRefresh).Reload()) Reload) کنم.من نمی‌فهمم یعنی همه‌ی دیتا یکبار توی شروع برنامه از دیتابیس دریافت میشن که دفعه‌های بعدی از Cash خونده میشن؟!ممنون میشم اگر یکم در این مورد توضیح بدید و جایی رو معرفی کنید که بشه مقدار بیشتر در مورد first level cache خوند.