Entity Framework در نگارش 7 خود از منابع دادهایی جدیدی پشتیبانی میکند( + ) . یعنی از Windows Phone، Windows Store و همچنین ASP.NET 5 (اپلیکیشنهایی که از NET Core. استفاده میکنند) پشتیبانی خواهد کرد. در این نسخه از دیتابیسهای non-relational نیز پشتیبانی میشود. پروایدر SQLite به صورت رسمی توسط تیم EF ارائه شده است که در ادامه نحوهی استفاده از آن را در یک برنامه کنسول ساده بررسی خواهیم کرد. کلاسهای برنامه: using Microsoft ...
در باب ضرورت نوشتن کدهای تست پذیر، توسعه کلاسهای کوچک تک مسئولیتی و اهمیت تزریق وابستگیها بارها و بارها بحث شده و مطلب نوشته شده است. این روزها کم پیش میاید که نرم افزاری توسعه داده شود و از پایگاه داده به جهت ذخیره و بازیابی دادهها استفاده نکند. با گسترش و رواج ORM ها، نوشتن کدهای دسترسی به دادهها سهولت یافته است و استفاده از ORM در لایهی سرویس که نگهدارندهی منطق تجاری برنامه است، امری اجتناب ناپذیر میباشد. در این مطلب ن ...
جهت تعیین مسیر فایل بانک اطلاعاتی برنامه در رشتههای اتصالی، عموما توصیه میشود که از |DataDirectory| استفاده شود. برای مثال: AttachDBFilename=|DataDirectory|\database.mdf
اما ... این |DataDirectory| دقیقا چگونه محاسبه میشود؟
اگر به سورس EF مراجعه کنیم، متد DbProviderServices.ExpandDataDirectory پیاده سازی مرتبط را به همراه دارد: // find the replacement path
var rootFolderObject = AppDomain.CurrentDomain ...
(Multiple Active Result Sets (MARS یکی از قابلیتهای SQL SERVER است. این قابلیت در واقع این امکان را برای ما فراهم میکند تا بر روی یک Connection همزمان چندین کوئری را به صورت موازی ارسال کنیم. در این حالت برای هر کوئری یک سشن مجزا در نظر گرفته میشود. مدل: namespace EnablingMARS.Models
{
public class Product
{
public int Id { get; set; }
public string Title { get; set; }
public string Des ...
این دو متد را در نظر بگیرید: private static void disposedContext()
{
using (var context = new MyContext())
{
Debug.WriteLine("Posts count: " + context.BlogPosts.Count());
}
}
private static void nonDisposedContext()
{
var context = new MyContext();
Debug.WriteLine("Posts count: " + context.BlogPosts ...
یکی از نیازهای نوشتن یک برنامهی پروفایلر، نمایش اطلاعات متدهایی است که سبب لاگ شدن اطلاعاتی شدهاند. برای مثال در طراحی interceptorهای EF 6 به یک چنین متدهایی میرسیم: public void ScalarExecuted(DbCommand command,
DbCommandInterceptionContext<object> interceptionContext)
{
}
سؤال: در زمان اجرای ScalarExecuted دقیقا در کجا قرار داریم؟ چه متدی در برنا ...
پس از بررسی مقدماتی امکانات کتابخانهی JSON.NET، در ادامه به تعدادی از تنظیمات کاربردی آن با ذکر مثالهایی خواهیم پرداخت.
گرفتن خروجی CamelCase از JSON.NET
یک سری از کتابخانههای جاوا اسکریپتی سمت کلاینت، به نامهای خواص CamelCase نیاز دارند و حالت پیش فرض اصول نامگذاری خواص در دات نت عکس آن است. برای مثال بجای UserName به userName نیاز دارند تا بتوانند صحیح کار کنند.
روش اول حل این مشکل، استفاده از و ...
دو نوع حالت کلی کارکردن با EF وجود دارند: متصل و منقطع .
در حالت متصل مانند برنامههای متداول دسکتاپ، Context مورد استفاده در طول عمر صفحهی جاری زنده نگه داشته میشود. در این حالت اگر شیءایی اضافه شود، حذف شود یا تغییر کند، توسط EF ردیابی شده و تنها با فراخوانی متد SaveChanges، تمام این تغییرات به صورت یکجا به بانک اطلاعاتی اعمال میشوند.
در حالت غیرمتصل مانند برنامههای وب، طول عمر Context در حد طول عمر یک درخواس ...
در EF 6 امکان تعریف سادهتر ایندکسها توسط data annotations میسر شدهاست. برای مثال: public abstract class BaseEntity
{
public int Id { get; set; }
}
public class User : BaseEntity
{
[Index(IsUnique = true)]
public string EmailAddress { get; set; }
}
در اینجا توسط ویژگی Index، خاصیت آدرس ایمیل به صورت منحصربفرد تعریف شدهاست. سؤال: چگونه میتوان شبیه به composite keys، اما نه دقیقا composite ke ...
پیشنیاز مطلب: پشتیبانی از Full Text Search در SQL Server
Full Text Search یا به اختصار FTS یکی از قابلیتهای SQL Server جهت جستجوی پیشرفته در متون میباشد. این قابلیت تا کنون در EF 6.1.1 ایجاد نشده است.
در ادامه پیاده سازی از FTS در EF را مشاهده مینمایید.
جهت ایجاد قابلیت FTS از متد Contains در Linq استفاده شده است.
...