۱۰ سال و ۶ ماه قبل، سهشنبه ۲۶ فروردین ۱۳۹۳، ساعت ۱۷:۰۳
۱۰ سال و ۶ ماه قبل، سهشنبه ۲۶ فروردین ۱۳۹۳، ساعت ۰۴:۲۴
- کار با کلیدهای اصلی و خارجی در EF Code first
- چند نکته کاربردی درباره Entity Framework
+ در ذیل هر مطلب، «مطالب مرتبط» و همچنین «ارجاع دهندههای داخلی» نیز جهت مطالعه و یافتن پاسخها بسیار مفید هستند.
- چند نکته کاربردی درباره Entity Framework
+ در ذیل هر مطلب، «مطالب مرتبط» و همچنین «ارجاع دهندههای داخلی» نیز جهت مطالعه و یافتن پاسخها بسیار مفید هستند.
۱۰ سال و ۶ ماه قبل، دوشنبه ۲۵ فروردین ۱۳۹۳، ساعت ۲۱:۱۳
- کمی بالاتر توضیح دادم «فقط دو حالت وجود دارد که برنامه اجرا نشود: ... »
- این مورد فقط بستگی به توان سرور شما دارد.
- این مورد فقط بستگی به توان سرور شما دارد.
۱۰ سال و ۶ ماه قبل، دوشنبه ۲۵ فروردین ۱۳۹۳، ساعت ۱۵:۰۹
- کدهایی که در ماخذ رسمی ذکر شدند، برای حذف پیش فرضهای EF هست. به صورت پیش فرض OneToManyCascadeDeleteConvention وجود دارد. اگر بخواهید در همه جا آنرا حذف کنید، modelBuilder.Conventions.Remove را بر روی آن فراخوانی کنید. اگر نیاز است فقط در یک رابطهی خاص این مورد حذف شود از متد WillCascadeOnDelete با پارامتر false استفاده کنید.
- همچنین مطابق این ماخذ: اگر کلید خارجی مدنظر نال پذیر باشد (مانند نوعهای nullable صریح و یا string و امثال آن)، حذف آبشاری را اعمال نمیکند. فقط یک سر رابطه را نال کرده و آنرا حذف میکند.
- همچنین مطابق این ماخذ: اگر کلید خارجی مدنظر نال پذیر باشد (مانند نوعهای nullable صریح و یا string و امثال آن)، حذف آبشاری را اعمال نمیکند. فقط یک سر رابطه را نال کرده و آنرا حذف میکند.
If a foreign key on the dependent entity is nullable , Code First does
not set cascade delete on the relationship, and when the principal is
deleted the foreign key will be set to null
If a foreign key on the dependent entity is not nullable , then Code First sets cascade delete on the relationship
If a foreign key on the dependent entity is not nullable , then Code First sets cascade delete on the relationship
۱۰ سال و ۶ ماه قبل، دوشنبه ۲۵ فروردین ۱۳۹۳، ساعت ۰۳:۴۶
«No Default Instance» یعنی در تنظیمات اولیه IoC Container مورد استفاده، برای اینترفیس خاصی، کلاس پیاده سازی کنندهای را تعریف نکردهاید. برای مشاهده بحث مشابهی در این مورد به نظرات مطلب «تزریق خودکار وابستگیها در برنامههای ASP.NET MVC » مراجعه کنید.
۱۰ سال و ۶ ماه قبل، یکشنبه ۲۴ فروردین ۱۳۹۳، ساعت ۲۲:۱۵
- در قسمت HasRequired که Username نباید تعریف شود. در اینجا یک سر دیگر رابطه باید معرفی گردد. همان روابط و کلاسهایی که به صورت virtual در کدها آمده. HasRequired با IsRequired متفاوت است.
+ حذف آبشاری به صورت پیش فرض فعال است (برای مواردی که کلید خارجی نال پذیر نیست). نیازی به فعال سازی دستی آن نیست.
+ حذف آبشاری به صورت پیش فرض فعال است (برای مواردی که کلید خارجی نال پذیر نیست). نیازی به فعال سازی دستی آن نیست.
۱۰ سال و ۶ ماه قبل، یکشنبه ۲۴ فروردین ۱۳۹۳، ساعت ۲۱:۳۲
- در قسمت HasRequired که Username نباید تعریف شود. در اینجا یک سر دیگر رابطه باید معرفی گردد. همان روابط و کلاسهایی که به صورت virtual در کدها آمده.
- در متن ذکر کردم «همین میزان تنظیم کفایت میکند و نیازی به استفاده از Fluent API برای معرفی روابط نیست.»
برای بسیاری از تنظیمات EF Code first، اگر پیش فرضهای آنرا رعایت کنید، نیازی به هیچگونه تنظیم اضافهتری ندارید. مثلا برای رابطه one-to-many فقط کافی است در دو سر رابطه (نه فقط یک سر آن)، تنظیمات زیر را داشته باشید:
همین مقدار کافی است و پیش فرضها را پوشش میدهد. تنظیمات Fluent برای زمانی است که میخواهید پیشفرضها را بازنویسی کنید. مثلا نام جدول خودکار تشکیل شده توسط آن مدنظر شما نیست. یا حالت بسیار خاصی از روابط مانند مدلهای خودارجاع دهنده باید تشکیل شود و در این حالت فقط حالت Fluent است که پاسخگوی یک چنین سناریوهایی است.
- در متن ذکر کردم «همین میزان تنظیم کفایت میکند و نیازی به استفاده از Fluent API برای معرفی روابط نیست.»
برای بسیاری از تنظیمات EF Code first، اگر پیش فرضهای آنرا رعایت کنید، نیازی به هیچگونه تنظیم اضافهتری ندارید. مثلا برای رابطه one-to-many فقط کافی است در دو سر رابطه (نه فقط یک سر آن)، تنظیمات زیر را داشته باشید:
// یک سایت که چندین بلاگ دارد public class Site { public int Id { get; set; } public string Name { get; set; } public virtual ICollection<Blog> Blogs { set; get; } } public class Blog { public int Id { get; set; } public string Name { set; get; } [ForeignKey("SiteId")] public virtual Site Site { get; set; } public int SiteId { set; get; } }
۱۰ سال و ۶ ماه قبل، یکشنبه ۲۴ فروردین ۱۳۹۳، ساعت ۲۱:۰۸
۱۰ سال و ۶ ماه قبل، یکشنبه ۲۴ فروردین ۱۳۹۳، ساعت ۱۸:۰۱
در قسمتهای بعدی به این مباحث پرداخته شده:
- فرق List و کالکشن و موارد مشابه در اینجا
- بررسی رابطه one-to-many در قسمت هفتم
- فرق List و کالکشن و موارد مشابه در اینجا
- بررسی رابطه one-to-many در قسمت هفتم
۱۰ سال و ۶ ماه قبل، یکشنبه ۲۴ فروردین ۱۳۹۳، ساعت ۰۲:۱۲
- EF -> WCF Data Service -> SSRS via XML
- Data Processing Extension
- Using SSRS In ASP.NET MVC Application
- Microsoft.Reporting.WebForms.ReportDataSource
- Data Processing Extension
- Using SSRS In ASP.NET MVC Application
- Microsoft.Reporting.WebForms.ReportDataSource