سلام
میخوام بدونم مثل روش های سنتی باید دیتابیس رو بهش بشناسونیم یا نیازی نیست کانکشن استرینگ رو براش ست کرد؟
سلام
میخوام بدونم مثل روش های سنتی باید دیتابیس رو بهش بشناسونیم یا نیازی نیست کانکشن استرینگ رو براش ست کرد؟
دوست عزیز این هم مثل روش های قدیمی باید کانکشن رو بهش اعلام کنی اما کمی متفاوت تر مثلا شما وقتی که مدلتون درست شد کانکتشن در فایل کانفیگ برنامتون قرار می گیره و نیاز نیست برا هر بار استفاده از دیتابیس اونو ست کنید ولی می تونی کانکتشن دیگه ای هم موقع استفاده بهش معرفی کنی و محدود نیستی
خیلی ممنونم حالا یه سوال من در برنامه ام باید چطور کانکشن رو بهش معرفی کنم که توی سیستم های دیگه به مشکل برخورد نکنم از EF استفاده میکنم...
دوست عزیز چند حالت داره :
1 - اگه از اس کیو ال سرور استفاده می کنید یعنی دیتابیستون دستی توسط کاربر اتچ می شه که اصلا نیاز نیست شما کانکتشن رو معرفی کنید .
2 - اگه از دیتابیس هایی مثل اس کیو ال اکسپرس یا کامپکت استفاده می کنید و دیتابیس هاتون هم کناره خود برنامه هست باز هم نیاز نیست که کانکتشن رو بهش معرفی کنید و فقط لازم هست که در کانکتشن موجود در فایل کانفیگ از آدرس دهی نسبی استفاده کنید یعنی به جای اینکه مسیر دیتابیس رو بهش بدی میگی کنار برنامه هست و معمولا خودش اینکارو هم می کنه
3 - ولی زمانی هست که شما از اس کیو ال اکسپرس یا کامپکت استفاده می کنید و دیتابیس هاتون رو در جایه دیگه ای قرار دادید که اینجا لازم هست کانکتشن رو بهش معرفی کنید و برای این روش در گوگل سرچ کنید کانفیگ کانکتشن استرینگ باستون میاره .
4 - زمانی هم هست شما نمی خواید کانکشن استریگنتون در فایل کانفیگ برنامه باشه ( برا مسائل امنیتی ) که باز هم در اینجا شما نیاز هست کانکتشن استرینگ رو معرفی کنید
خیلی ممنونم عالی بود یه برنامه بود کانکشن استرینگ رو کد میکرد...
یه سوال دیگه چرا ما باید کانکشن رو از لحاظ امنیتی مخفی یا از دید کاربر خارج کنیم اگه کسی این ارتباط رو داشته باشه چظور میتونه اطلاعات رو بکشه؟
کانکتشن اطلاعات خوبی از سرور داره مثل ای پی سرور , یوزر نیم پسورد دیتابیس
فایلی که آخرش context.cs داره داخلش Constructor (سازنده) هستش که رفرنس می ده به کانکشن استرینگی که داخل App.Config وجود داره برای اینکه به جای رفرنس دادن بود اون به یک متغییر به عنوان کانکشن استرینگ آدرس بدید از کد بالا می تونید استفاده کنید و توی فایل App.xaml.cs هم یک متغیر استاتیک تعریف کنید و در زمان ورود به نرم افزار اون رو مقدار دهی کنید بر اساس نیازتون یا هم می تونی به این شکل توی هربار ساخت شی بهش کانکشونو پاس بدی:
public partial class DBEntities : DbContext
{
public DBEntities(string ConString)
: base(ConString)
{
}
توصیه شخصی اینکه قبل شروع برنامه نویسی حتما مطالب رو کامل یاد بگیرید و یک کتاب درست و حسابی رو تموم کنید.یک ماه دیرتر کارکردن رو شروع کنید بهتر از اینه که وقت تلف کنید روی سیستم های ناکارآمد اینو دوستانه میگم چون تجربه 5-6 سال قبل که برنامه نویسی رو شروع کردم رو داره یادم می آره که با اطلاعات محدود پروژه رو شروع می کردم و بعد هم قابلیت گسترش و عیب یابیش به مرور زمان خیلی کم میشد و هم وقت بی موردی رو سر بعضی موارد تلف می کردم.
در هر حال کدی که گفت اینجوریه شما وقتی دارید شی DBContext رو می سازید بهش کانکشنی نمی دید فقط دارید می گید شی رو بساز و توی cconstructor(تابع سازنده، همون تابعی که توی کد هست) در حالت عادی خود Entity Framework رفرنس می ده به کانکشن استرینگ که داخل config ذخیره است برای اینکه کانکشن داینامیک و قابل تغییر باشه باید سازنده رو به شکل اون کد بالا تغییر بدید اون کد باعث میشه که زمان ساخت شی DBContext استرینگ کانکشن دریافت بشه.
سلام روستون بخیر واقعا وقتم محدوده ولی باید این مبحث رو خیلی کار کنم چون خیلی از موارد EF برام نا کارامد و گنگ هستش.
خیلی خیلی ممنونم از لطفی که داشتید ببخشید میشه یه کتاب یا یه منبع مناسب که مطالعه کردید معرفی کنید...
برای EF زیاد نیازی به مطالعه خاصی نیست همون سی شارپ و مفاهیم شی گرایی رو بفهمید روی انتینی فریمورک مشکلی نخواهید داشت.من خودم کتابای APress رو می پسندم بیشتر، برای آموزش سی شارپ یک کتابشو دانلود کنید و بخونید مطمئن باشید خیلی چیزایی توی کتابا پیدا خواهید کرد که ارزش وقت گذاشتن رو دارن و کارتونو سریع تر می کنن.
با سلام،
می خواستم منو راهنمایی بکنین...
این فایل Model.Desiner.cs من توی یکی از پروژه هام هستش...
public partial class AtlasEntities : ObjectContext
{
#region Constructors
/// <summary>
/// Initializes a new AtlasEntities object using the connection string found in the 'AtlasEntities' section of the application configuration file.
/// </summary>
public AtlasEntities() : base("name=AtlasEntities", "AtlasEntities")
{
this.ContextOptions.LazyLoadingEnabled = true;
OnContextCreated();
}
/// <summary>
/// Initialize a new AtlasEntities object.
/// </summary>
public AtlasEntities(string connectionString) : base(connectionString, "AtlasEntities")
{
this.ContextOptions.LazyLoadingEnabled = true;
OnContextCreated();
}
/// <summary>
/// Initialize a new AtlasEntities object.
/// </summary>
public AtlasEntities(EntityConnection connection) : base(connection, "AtlasEntities")
{
this.ContextOptions.LazyLoadingEnabled = true;
OnContextCreated();
}
#endregion
#region Partial Methods
partial void OnContextCreated();
#endregion
#region ObjectSet Properties
/// <summary>
/// No Metadata Documentation available.
/// </summary>
public ObjectSet<Amuzeshgah_Azad_Honari> Amuzeshgah_Azad_Honari
{
get
{
if ((_Amuzeshgah_Azad_Honari == null))
{
_Amuzeshgah_Azad_Honari = base.CreateObjectSet<Amuzeshgah_Azad_Honari>("Amuz eshgah_Azad_Honari");
}
return _Amuzeshgah_Azad_Honari;
}
}
این فایل App.config که کانکشن هم توی این قسمت ذخیره شده،
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="AtlasEntities" connectionString="metadata=res://*/AtlasModel.csdl|res://*/AtlasModel.ssdl|res://*/AtlasModel.msl;provider=System.Data.SqlClient;prov ider connection string="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Atlas.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
میخواستم کانکشن رو از این فایل برردارم و در قسمت سازنده فایل model.edmx قرار بدم اگه میشه کمکم کنید...
کسی در این مورد نظری نداره....
شدیدا به کمک احتیاج دارم...
یعنی واقعا کسی پروژه ای با EF ننوشته که بشه به صورت دستی براش کانکشن استرینگ ست کرد؟!!!
راهنمایی درمورد entity Framework که به صورت دستی براش کانکشن استرینگ ست کرد
لطفا کمک کنید...