ably ably برای هدایت شدن به سایت جدید اینجا کلیک کنید

آموزش برنامه نویسی

آموزش برنامه نویسی وب، اندروید، ویندوز , اسکیوال و...
Tell: 0912 097 5516
| Email: Hello@EduOnline.ir

بدست آوردن تمامی کلاس های یک namespace

بسم الله الرحمن الرحیم

با استفاده از کد زیر شما می توانید نام تمامی کلاس های موجود در یک namespace را بدست آورید

using System.Reflection;
private Type[] GetTypesInNamespace(Assembly assembly, string nameSpace)
{
    return assembly.GetTypes().Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal)).ToArray();
}

برای استفاده باید به صورت زیر عمل کنید

Type[] typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), "MyNamespace");
for (int i = 0; i < typelist.Length; i++)
{
    Console.WriteLine(typelist[i].Name);
}

آموزش Asp.net Identity

بسم الله الرحمن الرحیم

آموزش Authentication در MVC

آموزش Asp.net Membership

آموزش ASP.NET Identity

آموزش 2 ASP.NET Identity

آموزش 3 ASP.NET Identity

در بخش های قبلی کار با Asp.net Identity را بررسی کردیم.

خوب بدون هیچ وقفه ای به سراغ مبحث اصلی این مقاله می رویم، اگر خاطرتان باشد، گفتیم برای ذخیره اطلاعات در Asp.net Identity می توانیم از روش Cookie استفاده کنیم.

حال فکر کنید شما می خواهید اطلاعات کلاس یا همان Model کاربر خود را در Cookie ذخیره کنید. با توجه به این که Cookie فقط اجازه ذخیره کردن اشیاء Serialize را می دهد شما نمی توانید به صورت زیر عمل کنید:

User user = // function to get user
HttpCookie cookie = new HttpCookie();
cookie.Value = user;

البته در Asp.net Identity ما به این صورت cookie.Value = user اطلاعات را ذخیره نمی کنیم. اما تفاوتی نخواهد داشت.

مشکلی که اینجا مشترک است این است که کوکی نمی تواند اطلاعات یک کلاس یا Model را ذخیره کند.

راه حل:

کلاس زیر را در نظر بگیرید

    public class clsAdmin
    {
    private string _name;

    public string Name
    {
    get { return _name; }

    set { _name = value; }
    }

    private int _id;

    public int AdminId
    {
    get { return _id; }
    set { _id = value; }
    }
    }

ادامه مطلب...

آموزش serialize کردن اشیا

بسم الله الرحمن الرحیم

 

ممکن است شما بخواهید یک شی از کلاس را در یک XML فایل ذخیره کنید، برای این کار می بایست شی خود را serialize کنید.

در این آموزش نحوه serialize را بررسی خواهیم کرد.

 

یک پروژه جدید از نوع windows Application  ایجاد کنید.

یک کلاس با نام MyClass به پروژه اضافه کنید و کد آن را به صورت زیر تغییر دهید:

public class MyClass

{

    // old school property

    private int _Age;  

    public int Age  

    {

        get { return _Age; }

        set { _Age = value; }

    }

 

    // new school property

    public bool Citizen { get; set; }

 

    // there's nothing wrong with using fields

    public string Name;  

}

ادامه مطلب...

serialize کردن به وسیله سی شارپ

بسم الله الرحمن الرحیم



در بسیاری از مواقع شما نیاز دارید یک شی را به صورت serialize ذخیره کنید، مثلا ذخیره کردن یک شی از کلاس user در کوکی و یا ذخیره کردن آن در ASP.NET Identity Claims و...
در این آموزش نحوه serialize را بررسی خواهیم کرد.

یک پروژه جدید از نوع Console Application  ایجاد کنید.
یک کلاس با نام clsPerson به پروژه اضافه کنید.
Property های زیر را به کلاس اضافه کنید

public   string FirstName;
public   string MI;
public   string LastName;

درون متد main کلاس Program.cs یک شی از کلاس clsPerson ایجاد کنید:

clsPerson p = new clsPerson();

Property های کلاس را مقدار دهی کنید

p.FirstName = "Esmaeil";
p.MI = "A";
p.LastName = "Sheidaei";

کلاس XmlSerializer برای ایجاد یک شی جدید نیاز دارد نوع شی ایی را که شما می خواهید به serialize تبدیل کنید بداند به همین دلیل ما در زمان ایجاد شی از کلاس XmlSerializer نوع p  را به آن اطلاع می دهیم که طبیعتا نوع شی ما در این جا clsPerson است.

ادامه مطلب...

افزایش سرعت Insert کردن رکورد ها در MVC

بسم الله الرحمن الرحیم





در این آموزش می خواهیم با روش جدید Insert کردن رکوردهایی با تعداد بالا به وسیله MVC آشنا کنیم و همچنین نحوه افزایش سرعت Insert کردن را فرا بگیریم.


EntityFramework.BulkInsert


یک extension برای Entity framework 4 به بالا است که سرعت Insert کردن شما در insert های عظیم تا 20 برابر افزایش می دهد.
این extension از روش Code First و Database First پشتیبانی می کند.

Entity Framework

ادامه مطلب...

اضافه کردن متد به LINQ

بسم الله الرحمن الرحیم

 

می خواهیم به تمامی لیست هایی که از نوع double ایجاد می شوند یک متد برای پیدا کردن عنصر میانی آنها بنویسیم

 

public static class LINQExtension
{
    public static double Median(this IEnumerable<double> source)
    {
        if (source.Count() == 0)
        {
            throw new InvalidOperationException("Cannot compute median for an empty set.");
        }

        var sortedList = from number in source
                         orderby number
                         select number;

        int itemIndex = (int)sortedList.Count() / 2;

        if (sortedList.Count() % 2 == 0)
        {
            // Even number of items.
            return (sortedList.ElementAt(itemIndex) + sortedList.ElementAt(itemIndex - 1)) / 2;
        }
        else
        {
            // Odd number of items.
            return sortedList.ElementAt(itemIndex);
        }
    }
}

 

ادامه مطلب...

Linq extension method

بسم الله الرحمن الرحیم

می خواهیم یک Extesion Method مانند متدهای Linq برای Model ایی خاص بنویسیم.

دو نکته را برای نوشتم متدهای توسعه (Extension Method) باید رعایت کنید:

1- متد را باید در کلاسی بنویسید که از نوع static باشد

2- namespace شما باید با namespace کلاسی که می خواهید برای آن Extension Method بنویسید یکسان باشد

ما می خواهیم وقتی از شی DbContext مدل Active  را انتخاب می کنیم مانند متد ()FirstOrDefault لینک (LINQ) یک متد برای اجرای یک دستور خاص نمایش داده شود:

public static class Extensions
{
    public IQueryable<T> Active<T>(this IQueryable<T> source)
        where T : YourEntityType
    {
        return source.Where(a => ((a.publishEnd > DateTime.Now) || (a.publishEnd == null))
                          && ((a.publishStart <= DateTime.Now) || (a.publishStart == null))
                          && a.active == true);
    }
}

برای فراخوانی متد به صورت زیر می توانیم عمل کنیم:

var item = db.myTable.Active().SingleOrDefault(...);

آموزش ASP.NET Identity

بسم الله الرحمن الرحیم

 

آموزش Authentication در MVC

آموزش Asp.net Membership

آموزش ASP.NET Identity

آموزش 2 ASP.NET Identity

آموزش 3 ASP.NET Identity

معرفی ASP.NET Identity

در سال 2005 مایکروسافت ASP.NET Membership را معرفی کرد تا نیازهایی که تمامی برنامه نویسان برای احراز هویت و تعیین سطوح دسترسی کاربران داشتند را برطرف نماید.

در ابتدا سیستم ASP.NET Membership بسیاری از نیازهای برنامه نویسان را برطرف می نمود از جمله: ثبت نام، فراموشی کلمه عبور و تعیین گروه کاربر (هر کاربر می توانست در گروهایی همچون، Admin و سایر گروه هایی که شما تعریف می کردید قرار بگیرد) و... در نهایت این سیستم بسیار کمک بزرگی به برنامه نویسان کرد.

اما با گذشت زمان و تغییر و افزایش نیاز برنامه نویسان، سیستم ASP.NET Membership مشخص شد که دیگر پاسخگوی نیاز برنامه نویسان نیست بنابراین مایکروسافت سیستم جدیدی را با نام ASP.NET Identity را معرفی کرد که بسیار قدرتمندتر از سیستم ASP.NET Membership بود و همچنین امکانات جدیدی به آن اضافه شده بود ازجمله احراز هویت بر اساس سرویس های سایر سایتها و شبکه های اجتماعی مانند facebook, Google,.. و احراز هویت بر اساس سیستم های ارسال پیامک و امکانات دیگر که هر یک به نوبه خود جدید و بسیار مفید خواهند بود.

 

ادامه مطلب...

آموزش Asp.net Identity

بسم الله الرحمن الرحیم


با توجه به درخواست بسیاری از دوستان پس از نوشتن مقاله معرفی ASP.NET Identity، در خصوص نوشتن یک پروژه برای استفاده از Identity ASP.NET به صورت عملی بنده این مقاله را برای شما آماده کردم. انشالله مفید واقع شود.

آموزش Authentication در MVC

آموزش Asp.net Membership

آموزش ASP.NET Identity

آموزش 2 ASP.NET Identity

آموزش 3 ASP.NET Identity

در آموزش قبلی شما با فرایند کار ASP.NET Identity آشنا شدید در این مقاله شما نحوه خواندن و بررسی اطلاعات کاربر را با استفاده از SQL Server آموزش خواهید دید.

Storing user information in a database
برای ذخیره اطلاعات در دیتابیس به وسیله ASP.NET Identity ما باید Package زیر را نصب کنیم:

Install-Package Microsoft.AspNet.Identity.EntityFramework

این Package برای ارتباط ما با SQL Server است که به وسیله آن می توانیم اطلاعات خود را دردیتابیس ذخیره کنیم و سپس اطلاعات خود را نیز از دیتابیس بخوانیم.


ایجاد کلاس برای نمایش اطلاعات کاربر

ASP.NET Identity به سادگی به شما اجازه می دهد که اطلاعات اضافی را برای کاربر خود ذخیره کنید. شما برای این کار باید از کلاس IdentityUser استفاده کنید و سپس Property های مورد نیاز خود را برای ثبت اطلاعات بیشتر برای هر کاربر تعریف کنید.
در این مثال ما علاوه بر اطلاعات کاربری فیلد country را نیاز داریم به همین دلیل این فیلد را به صورت زیر اضافه می کنیم:

public class AppUser : IdentityUser
{
    public string Country { get; set; }
}

ادامه مطلب...

آموزش ساخت Connection String

بسم الله الرحمن الرحیم

یک راه ساده برای ایجاد و تست Connection String امروز فرا خواهید گرفت.

برای شروع کافی است در دسکتاپ خود کلیک راست کنید و گزینه new را انتخاب و سپس یک فایل Text Document ایجاد کنید حال پسوند فایل ایجاد شده را به UDL تغییر دهید (یادتان باشد باید پسوند فایلها را ابتدا از طریق Control Panel -> Folder Options -> View گزینه Hide extensions for known file type را غیر فعال کنید ). حال بر روی فایل دابل کلیک کنید تا باز شود و به ترتیب می توانید مشخصات نام سرور خود، نام کاربری و کلمه عبور سرور خود و در نهایت انتخاب پایگاه داده خود را انجام دهید.

در نهایت پس از تکمیل اطلاعات بر روی گزینه Test Connection  کلیک کنید تا مطمن شوید یک کانکشن صحیح ایجاد شده است.

برای استفاده از Connection String تولید شده می توانید بر روی فایل کلیک راست کنید و آن را دریک برنامه مثل Notepad باز کنید و از اطلاعات آن استفاده کنید.

آموزش Authentication در MVC

بسم الله الرحمن الرحیم

آموزش Authentication در MVC

آموزش Asp.net Membership

آموزش ASP.NET Identity

آموزش 2 ASP.NET Identity

آموزش 3 ASP.NET Identity

در بعضی مواقع ممکن است شما از نوع پیش فرض authentication نمی خواهید استفاده می کنید و دوست دارید یک احراز هویت اختصاصی برای خود داشته باشید. هر کاربر شما یک کاربر منحصر به فرد خواهد بود که مجموعه ای از سطوح دسترسی را برای دسترسی به بخش های مختلف وب سایت شما خواهد داشت. وقتی که کاربر شما تایید شود می تواند وابسته به Role هایی که دارد از منابع مختلف استفاده کند.

Asp.net Identity

ASP.NET به وسیله دو interface به نام های، IPrincipal and IIdentity سطوح دسترسی و identity و Role را برای هر کاربر ارائه می دهد. شما می توانید یک سطح دسترسی اختصاصی برای خود به وسیله اینترفیس های IPrincipal and IIdentity، که در HttpContext باند شده اند ایجاد نمایید.


public class CustomPrincipal : IPrincipal
{
public IIdentity Identity { get; private set; }
public bool IsInRole(string role)
{
if (roles.Any(r => role.Contains(r)))
{
return true;
}
else
{
return false;
}
}

public CustomPrincipal(string Username)
{
this.Identity = new GenericIdentity(Username);
}

public int UserId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string[] roles { get; set; }
}

ادامه مطلب...

خطا Validation failed for one or more entities

بسم الله الرحمن الرحیم

طبیعتا تاکنون در حین اجرای پروژه با خطای زیر برخورد کردید:

Validation failed for one or more entities. See 'EntityValidationErrors' property for more details. Description: 
An unhandled exception occurred during the execution of the current web request.
Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.Entity.Validation.DbEntityValidationException:
Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.

هر یک از شما دوستان ممکن است راه حل های زیادی برای حل این مشکل داشته باشید.

در اینجا خطایی به دلیل خالی بودن و تکمیل نشده اطلاعات رخ می دهد در صورتی که ممکن است این فیلدها بر روی فرم اصلا وجود نداشته اند مثلا شما یک ویو مدل از مدل ساخته اید و تنها بخشی از اطلاعات مدل را می خواهید برروز کنید.

ادامه مطلب...

خطا Cannot insert the value NULL into column

بسم الله الرحمن الرحیم

خطای زیر را مشاهده کنید:

Cannot insert the value NULL into column 'FirstLastName', table 'RequestSessions'; column does not allow nulls. INSERT fails.The statement has been terminated. 

در مدلی که دارید کار می کنید فیلدی وجود دارد که در دیتابیس نمی تواند null باشد برای رفع این مشکل باید در اکشن خود مدل را مقدار دهی کنید

  مثلا

Account.FirstLastName=”Esmaeil”;

آموزش Asp.net Membership

بسم الله الرحمن الرحیم

آموزش Authentication در MVC

آموزش Asp.net Membership

آموزش ASP.NET Identity

آموزش 2 ASP.NET Identity

آموزش 3 ASP.NET Identity

خطای زیر را مشاهده کنید:

An exception of type 'System.Web.Security.MembershipCreateUserException' occurred in System.Web.dll but was not handled in user code

Additional information: The password supplied is invalid.  Passwords must conform to the password strength requirements configured for the default provider.

این خطا در خط زیر

  Membership.CreateUser(dbAccount.UserName, dbAccount.Password);

از تابع

        public bool Authorize()
        {
......

ارسال شده است.

membership

به دلیل اینکه شما در وب کانفیگ خود برای membership حداقل کلمه عبور را 6 کاراکتر ست کرده اید و کلمه عبور جاری که در اسکیوال شما وجود دارد کمتر از 6 کارکتر است این خطا رخ می دهد.
باید در Web.config خود درقسمت تنظیمان membership کد  "minRequiredPasswordLength="6 را در صورتی که می خواهید حداقل طول کلمه عبور تغییر کند، تغییر دهید:

    <profile defaultProvider="DefaultProfileProvider">
      <providers>
        <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="Context" applicationName="/" />
      </providers>
    </profile>
    <membership defaultProvider="DefaultMembershipProvider">
      <providers>
        <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="Context" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
      </providers>
    </membership>
    <roleManager defaultProvider="DefaultRoleProvider">
      <providers>
        <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="Context" applicationName="/" />
      </providers>
    </roleManager>

یا می توانید برای حل مشکل در مدل خود حداقل طول کلمه عبور را مطابق membership ایجاد نمایید تا مشکلی پیش نیاید

  [Display(Name = "کلمه عبور")]
        [Required(ErrorMessage = "رمز عبور را وارد نمائید")]
        [MinLength(6, ErrorMessage = "حداقل طول کلمه عبور 6 حرف می باشد")]
        [MaxLength(50, ErrorMessage = "رمز عبور مجاز نمی باشد")]
        [DataType(DataType.Password)]
        public string Password

آموزش Entity Framework

بسم الله الرحمن الرحیم



ممکن است شما بخواهید یک enumایجاد کنید و سپس این enum را در دیتابیس ذخیره کنید.برای این کار کافی است کد زیر را Model خود قرار دهید

public DataKind Kind { get; set; }



 که در واقع DataKind یک enum است که قبلا به صورت زیر تعریف شده است


namespace Ad.NegCred.Data.Model {
    public enum DataKind {
        F, //Takibe alınıp henüz tahsil edilmeyen ferdi kredi bildirimi
        FA, //Aynı dönemde takibe alınan ve tahsil edilen ferdi kredi bildirimi
        FF, //daha önceki dönemlerde takibe alındığı bildirilmiş ferdi kredi tahsil bildirimi
        K, //Takibe alınıp henüz tahsil edilmeyan kredi kartı
        KA, //Aynı dönemde takibe alınan ve tahsil edilen kredi kartı
        KF //Daha önceki dönemlerde takibe alındığı bildirilmiş kredi kartı tahsil    bildirimi
    }

    public class Datum {
        [Key]
        public long Id { get; set; }
        public DataKind Kind { get; set; }
        [StringLength(25, MinimumLength = 2)]
        public string Name { get; set; }
    }
}

حال اگر بخواهیم یک مثال کامل داشته باشیم، کد Model  و enum ما به صورت زیر خواهد بود


namespace Ad.NegCred.Data.Model {
    public enum DataKind {
        F,
        FA,
        FF,
        K,
        KA,
        KF
    }

    public class Datum {
        [Key]
        public long Id { get; set; }
        public DataKind Kind { get; set; }
        [StringLength(25, MinimumLength = 2)]
        public string Name { get; set; }
    }
}

حال اگر پروژه را اجرا کنید متوجه خواهید شد که فیلد enum  به دیتابیس اضافه نشده است!؟

علت؟

EF 5 و  .NET Framework 4 نمی تواند فیلد enum را ایجاد کند زمانی که System.Data.Entity.dll در .NET Framework 4 به وسیله EntityFrameork.dll استفاده می شود این کار صورت نخواهد گرفت برای حل این مشکل می بایست از EF5 و .NET Framework 4.5 با یکدیگر یا EF6 و.NET Framework 4 استفاده کنید که دیگر در اینجا (EF 6) ارتباطی با کامپوننت های داخلی NET Framework. ندارد.

آموزش Asp.net Identity MVC

بسم الله الرحمن الرحیم

آموزش Authentication در MVC

آموزش Asp.net Membership

آموزش ASP.NET Identity

آموزش 2 ASP.NET Identity

آموزش 3 ASP.NET Identity


پس از اراائه ASP.NET Identity امکانات جدیدی در اختیار برنامه نویسان قرار گرفت ولی متاسفانه کمی این تکنولوژی کمی گیج کننده است. به همین دلیل سعی کردم یک مثال را برای شما عزیزان در اینجا قرار دهم.
در این مقاله authentication بر اساس cookie را در ASP.NET Identity بررسی خواهیم کرد.


Project Setup

یک Empty ASP.NET MVC web application ایجاد کنید.
•    از منوی File  گزینه  New Project و سپس "ASP.NET Web Application" را انتخاب کنید.
•    از پنجره  باز شدهASP.NET  گزینه "Empty" و در قسمت تنظیمات گزینه MVC را انتخاب کنید.

Asp.net Identity

ASP NET Identity


حال یک پروژه ASP.NET MVC application ایجاد کردید.

ادامه مطلب...

آموزش Windows Forms Events Lifecycle

بسم الله الرحمن الرحیم


در ارتباط با Windows Form کتابها و مقالات زیادی وجود که به وسیله آن می توانید به سادگی راه و روش ایجاد یک برنامه را آموزش ببینید. در اینجا یک آموزش در خصوص ترتیب اجرای Event ها وجود دارد، اگر شما lifecycle فرم را بدانید بهتر می توانید اطلاع پیدا کنید که Event های خود را در کدام بخش بنویسید.
در مورد ASP.NET اطلاعات زیادی در خصوص ترتیب اجرا شدن Event ها وجود دارد اما در مورد Windows Form اطلاعات به سختی بدست خواهد آمد.

در ایجا لیست و ترتیب اجرای Event ها را برای شما قرار داده ام

•    Move: این رویداد زمانی اتفاق می افتد که فرم تغییر مکان دهد، اما دهنگام اجرای برنامه هرچند کاربر فرم را تغییر مکاتن نمی دهد ولی این رویداد اجرا می شود.
•    Load: این رویداد در اولین بار قبل از نمایش فرم اتفاق می افتد.
•    VisibleChanged: این رویداد با تغییر Visible اتفاق می افتد.
•    Activated: این رویداد  پس از Activated شدن توسط کد یا کاربر اتفاق می افتد.
•    Shown:این رویداد زمانی اتفاق می افتد که برای اولین بار فرم نمایش داده شده است.
•    Paint: این رویداد در زمانی که فرم ترسیم می شود اتفاق می افتد.
•    Deactivate: این رویداد در زمانی که فرم فوکس خود را از سدت یم دهد و یا فعال نیست اجرا می شود
•    Closing: این رویداد در زمانی که فرم در حال بسته شدن است اتفاق می افتد.
•    Closed: این رویداد در زمانی که فرم در شروع به بسته شدن می کند اتفاق می افتد.

ادامه مطلب...

آموزش Code First Data Annotations - بخش چهارم

بسم الله الرحمن الرحیم

 برای مشاهده سایر بخش های دوره آموزش Code First Data Annotations از طریق لینکهای زیر اقدام نمایید.

بخش اول

بخش دوم

بخش سوم

بخش چهارم

بخش چهارم

Index

ایندکس گزاری بر روی جداول

خاصیت Index در EF6.1 معرفی شده است و فقط توسط این نسخه از Entity Framework  می توانید این کار را انجام دهید. اگر از نسخه های قدیمی Entity Framework استفاده می کنید نمی توانید این کار را انجام دهبد.

شما می توانید بر روی یک یا چند ستون از جدول خود با استفاده از IndexAttribute ایندکس گذاری کنید.

اضافه کردن این خاصیت به یک یا چند پراپرتی باعث می شود EF در زمان ایجاد دیتابیس یا اگر شما از Code First Migrations استفاده کنید scaffold ایندکس های مربوطه را ایجاد کند.

مثال، در زیر index بر روی ستون های Rating و Posts ایجاد شده است.

public class Post 
{
    public int Id { get; set; }
    public string Title { get; set; }
    public string Content { get; set; }
    [Index]
    public int Rating { get; set; }
    public int BlogId { get; set; }
}

ادامه مطلب...

آموزش Code First Data Annotations بخش سوم

بسم الله الرحمن الرحیم

 برای مشاهده سایر بخش های دوره آموزش Code First Data Annotations از طریق لینکهای زیر اقدام نمایید.

بخش اول

بخش دوم

بخش سوم

بخش چهارم

بخش سوم

Table and Column

اگر شما با Code First دیتابیس خود را ایجاد می کنید، ممکن است بخواهید نام جدول و ستونهای خود را تغییر دهید. شما همچنین می توانید از Code First برای یک دیتابیس که قبلا وجود داشته است استفاده کنید. همیشه این طور نیست که نام جدول ها و ستون ها با نام کلاس ها و پراپرتی ها یکسان باشد.

نام کلاس من Blog بود و بر اساس قرارداد Code First، به صورت پیش فرض این کلاس به یک جدول با نام Blog نگاشت (map) می شود. اگر شما این را نمی خواهید می توانید نام جدول خود را با استفاده از خاصیت Table تغییر دهید.
در اینجا ما برای مثال نام کلاس Blog را برای ایجاد جدول به نام InternalBlogs تغییر داده ایم:

[Table("InternalBlogs")] 
public class Blog

Column annotation

Column annotation نیز برای تغییر نام یک پراپرتی به فیلد در دیتابیس مورد استفاده قرار می گیرد. با استفاده از این خاصیت شما می توانید نام، data type و حتی ترتیب نمایش این فیلدها را در یک جدول دیتابیس مشخص کنید.

در این جا یک مثال برای خاصیت Column وجود دارد:

ادامه مطلب...

آموزش Code First Data Annotations - بخش دوم

بسم الله الرحمن الرحیم

 برای مشاهده سایر بخش های دوره آموزش Code First Data Annotations از طریق لینکهای زیر اقدام نمایید.

بخش اول

بخش دوم

بخش سوم

بخش چهارم

بخش دوم

ComplexType

نوع های پیچیده

ممکن است شما یک نوع غیر معمول برای فیلد های خود بخواهید تعریف کنید، این نوع شما ممکن است یک کلاس باشد، مثلا کلاس زیر را در نظر بگیرید:

public class BlogDetails 
{
    public DateTime? DateCreated { get; set; }
 
    [MaxLength(250)]
    public string Description { get; set; }
}

ادامه مطلب...
up
ما را در گوگل محبوب کنید