PDA

View Full Version : سوال: من از EF استفاده میکنم میخواستم بدونم این تکنولوژی روی یه سیستم دیگه نیاز به ست کردن کانکشن است؟



Mosafers
شنبه 08 تیر 1392, 15:12 عصر
سلام
میخوام بدونم مثل روش های سنتی باید دیتابیس رو بهش بشناسونیم یا نیازی نیست کانکشن استرینگ رو براش ست کرد؟

aghayex
شنبه 08 تیر 1392, 18:02 عصر
دوست عزیز این هم مثل روش های قدیمی باید کانکشن رو بهش اعلام کنی اما کمی متفاوت تر مثلا شما وقتی که مدلتون درست شد کانکتشن در فایل کانفیگ برنامتون قرار می گیره و نیاز نیست برا هر بار استفاده از دیتابیس اونو ست کنید ولی می تونی کانکتشن دیگه ای هم موقع استفاده بهش معرفی کنی و محدود نیستی

Mosafers
شنبه 08 تیر 1392, 18:21 عصر
خیلی ممنونم حالا یه سوال من در برنامه ام باید چطور کانکشن رو بهش معرفی کنم که توی سیستم های دیگه به مشکل برخورد نکنم از EF استفاده میکنم...

aghayex
یک شنبه 09 تیر 1392, 17:39 عصر
دوست عزیز چند حالت داره :
1 - اگه از اس کیو ال سرور استفاده می کنید یعنی دیتابیستون دستی توسط کاربر اتچ می شه که اصلا نیاز نیست شما کانکتشن رو معرفی کنید .
2 - اگه از دیتابیس هایی مثل اس کیو ال اکسپرس یا کامپکت استفاده می کنید و دیتابیس هاتون هم کناره خود برنامه هست باز هم نیاز نیست که کانکتشن رو بهش معرفی کنید و فقط لازم هست که در کانکتشن موجود در فایل کانفیگ از آدرس دهی نسبی استفاده کنید یعنی به جای اینکه مسیر دیتابیس رو بهش بدی میگی کنار برنامه هست و معمولا خودش اینکارو هم می کنه
3 - ولی زمانی هست که شما از اس کیو ال اکسپرس یا کامپکت استفاده می کنید و دیتابیس هاتون رو در جایه دیگه ای قرار دادید که اینجا لازم هست کانکتشن رو بهش معرفی کنید و برای این روش در گوگل سرچ کنید کانفیگ کانکتشن استرینگ باستون میاره .
4 - زمانی هم هست شما نمی خواید کانکشن استریگنتون در فایل کانفیگ برنامه باشه ( برا مسائل امنیتی ) که باز هم در اینجا شما نیاز هست کانکتشن استرینگ رو معرفی کنید

Mosafers
پنج شنبه 13 تیر 1392, 14:21 عصر
خیلی ممنونم عالی بود یه برنامه بود کانکشن استرینگ رو کد میکرد...
یه سوال دیگه چرا ما باید کانکشن رو از لحاظ امنیتی مخفی یا از دید کاربر خارج کنیم اگه کسی این ارتباط رو داشته باشه چظور میتونه اطلاعات رو بکشه؟

aryasoft2872
پنج شنبه 13 تیر 1392, 21:53 عصر
خیلی ممنونم عالی بود یه برنامه بود کانکشن استرینگ رو کد میکرد...
یه سوال دیگه چرا ما باید کانکشن رو از لحاظ امنیتی مخفی یا از دید کاربر خارج کنیم اگه کسی این ارتباط رو داشته باشه چظور میتونه اطلاعات رو بکشه؟
Contructor رو بر اساس نیازتون تغییر بدید و چه از طریق یک متغییر عمومی و یا دریافت کانکشن استرینگ در هر بار ساخت شی می تونید کانکشن استرینگ رو توی کد مشخص کنید.مثل این

public partial class DBEntities : DbContext
{
public DBEntities()
: base(App.ConnectionString)
{
}

aghayex
پنج شنبه 13 تیر 1392, 23:28 عصر
کانکتشن اطلاعات خوبی از سرور داره مثل ای پی سرور , یوزر نیم پسورد دیتابیس

Mosafers
جمعه 14 تیر 1392, 01:09 صبح
کانکتشن اطلاعات خوبی از سرور داره مثل ای پی سرور , یوزر نیم پسورد دیتابیس
اهان پس اینظوره االن متوجه شدم مرسی دوست خوبم...


Contructor رو بر اساس نیازتون تغییر بدید و چه از طریق یک متغییر عمومی و یا دریافت کانکشن استرینگ در هر بار ساخت شی می تونید کانکشن استرینگ رو توی کد مشخص کنید.مثل این

public partial class DBEntities : DbContext
{
public DBEntities()
: base(App.ConnectionString)
{
}

لطفا اگه میشه بیشتر توضیح بدید...

aryasoft2872
پنج شنبه 20 تیر 1392, 13:57 عصر
لطفا اگه میشه بیشتر توضیح بدید...
فایلی که آخرش context.cs داره داخلش Constructor (سازنده) هستش که رفرنس می ده به کانکشن استرینگی که داخل App.Config وجود داره برای اینکه به جای رفرنس دادن بود اون به یک متغییر به عنوان کانکشن استرینگ آدرس بدید از کد بالا می تونید استفاده کنید و توی فایل App.xaml.cs هم یک متغیر استاتیک تعریف کنید و در زمان ورود به نرم افزار اون رو مقدار دهی کنید بر اساس نیازتون یا هم می تونی به این شکل توی هربار ساخت شی بهش کانکشونو پاس بدی:
public partial class DBEntities : DbContext
{
public DBEntities(string ConString)
: base(ConString)
{
}

Mosafers
یک شنبه 23 تیر 1392, 13:46 عصر
فایلی که آخرش context.cs داره داخلش Constructor (سازنده) هستش که رفرنس می ده به کانکشن استرینگی که داخل App.Config وجود داره برای اینکه به جای رفرنس دادن بود اون به یک متغییر به عنوان کانکشن استرینگ آدرس بدید از کد بالا می تونید استفاده کنید و توی فایل App.xaml.cs هم یک متغیر استاتیک تعریف کنید و در زمان ورود به نرم افزار اون رو مقدار دهی کنید بر اساس نیازتون یا هم می تونی به این شکل توی هربار ساخت شی بهش کانکشونو پاس بدی:
public partial class DBEntities : DbContext
{
public DBEntities(string ConString)
: base(ConString)
{
}
میشه خواهش کنم یه مثال قرار بدید من مبتدی هستم و متوجه نمیشم...
میخوام برنامه ام طوری باشه که بتونم کانکشن رو از منو برای برنامه ست کنم...کانکشن رو هم توی setting ذخیره میکنم و در صورت پر بودن و صحیح بودن باز بشه؟

aryasoft2872
دوشنبه 24 تیر 1392, 18:57 عصر
میشه خواهش کنم یه مثال قرار بدید من مبتدی هستم و متوجه نمیشم...
میخوام برنامه ام طوری باشه که بتونم کانکشن رو از منو برای برنامه ست کنم...کانکشن رو هم توی setting ذخیره میکنم و در صورت پر بودن و صحیح بودن باز بشه؟

توصیه شخصی اینکه قبل شروع برنامه نویسی حتما مطالب رو کامل یاد بگیرید و یک کتاب درست و حسابی رو تموم کنید.یک ماه دیرتر کارکردن رو شروع کنید بهتر از اینه که وقت تلف کنید روی سیستم های ناکارآمد اینو دوستانه میگم چون تجربه 5-6 سال قبل که برنامه نویسی رو شروع کردم رو داره یادم می آره که با اطلاعات محدود پروژه رو شروع می کردم و بعد هم قابلیت گسترش و عیب یابیش به مرور زمان خیلی کم میشد و هم وقت بی موردی رو سر بعضی موارد تلف می کردم.

در هر حال کدی که گفت اینجوریه شما وقتی دارید شی DBContext رو می سازید بهش کانکشنی نمی دید فقط دارید می گید شی رو بساز و توی cconstructor(تابع سازنده، همون تابعی که توی کد هست) در حالت عادی خود Entity Framework رفرنس می ده به کانکشن استرینگ که داخل config ذخیره است برای اینکه کانکشن داینامیک و قابل تغییر باشه باید سازنده رو به شکل اون کد بالا تغییر بدید اون کد باعث میشه که زمان ساخت شی DBContext استرینگ کانکشن دریافت بشه.

Mosafers
سه شنبه 25 تیر 1392, 21:32 عصر
سلام روستون بخیر واقعا وقتم محدوده ولی باید این مبحث رو خیلی کار کنم چون خیلی از موارد EF برام نا کارامد و گنگ هستش.
خیلی خیلی ممنونم از لطفی که داشتید ببخشید میشه یه کتاب یا یه منبع مناسب که مطالعه کردید معرفی کنید...

aryasoft2872
پنج شنبه 27 تیر 1392, 00:26 صبح
سلام روستون بخیر واقعا وقتم محدوده ولی باید این مبحث رو خیلی کار کنم چون خیلی از موارد EF برام نا کارامد و گنگ هستش.
خیلی خیلی ممنونم از لطفی که داشتید ببخشید میشه یه کتاب یا یه منبع مناسب که مطالعه کردید معرفی کنید...
برای EF زیاد نیازی به مطالعه خاصی نیست همون سی شارپ و مفاهیم شی گرایی رو بفهمید روی انتینی فریمورک مشکلی نخواهید داشت.من خودم کتابای APress رو می پسندم بیشتر، برای آموزش سی شارپ یک کتابشو دانلود کنید و بخونید مطمئن باشید خیلی چیزایی توی کتابا پیدا خواهید کرد که ارزش وقت گذاشتن رو دارن و کارتونو سریع تر می کنن.

5225507
پنج شنبه 27 تیر 1392, 14:05 عصر
با سلام،
می خواستم منو راهنمایی بکنین...
این فایل 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>("Amuzeshgah_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=&quot;Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Atlas.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>


میخواستم کانکشن رو از این فایل برردارم و در قسمت سازنده فایل model.edmx قرار بدم اگه میشه کمکم کنید...

5225507
دوشنبه 31 تیر 1392, 00:44 صبح
کسی در این مورد نظری نداره....

5225507
دوشنبه 31 تیر 1392, 19:09 عصر
شدیدا به کمک احتیاج دارم...

Mosafers
سه شنبه 01 مرداد 1392, 19:51 عصر
یعنی واقعا کسی پروژه ای با EF ننوشته که بشه به صورت دستی براش کانکشن استرینگ ست کرد؟!!!

5225507
چهارشنبه 02 مرداد 1392, 13:33 عصر
راهنمایی درمورد entity Framework که به صورت دستی براش کانکشن استرینگ ست کرد
لطفا کمک کنید...