PDA

View Full Version : نحوه ایجاد اسکریپت از بانک اطلاعاتی و استفاده از EF در C# برای ایجاد بانک از طریق برنامه



saeidghadiri
شنبه 04 مهر 1394, 10:34 صبح
با سلام خدمت دوستان

من می خوام روش ایجاد بانک اطلاعاتی از طریق برنامه نویسی و EF روی خود برنامه ایجاد کنم و زمان اول بار روی هر سیستم پیغام دهد ابتدا ایجاد بانک اطلاعاتی و بعد از آن نصب اطلاعات پایه و بعد فرم لاگین نمایش داده شود.
بنده روی پروژه های مختلفی که بچه های انجمن طراحی کردن تحقیق کردم و دیدم توی روت اصلی برنامه فایل txt یا SQL که اسکریپت هست رو از روی بانک اطلاعاتی ایجاد می کنند و طی ارتباط با EF و کلاس Connection ی مرتبط با آن این روش را پیاده سازی و می توان بانک اطلاعاتی SQL را ایجاد کرد.

حالا سوال:
1. در این روش نحوه Script تولید شده از بانک را کاملا توضیح دهید چون قبلا از دوستانی که آن را تولید کرده اند پرسیده و پاسخی نمی دهند.
2. آیا Script تولید شده برای SQL با نسخه های مختلف متفاوت است: یعنی بانک شما SQL 2014 است و اسکریپت تولید می کنید نمی توان روی SQL 2008 R2 ایجاد کرد؟ و دلیل نشدن این موضوع چیست؟

SabaSabouhi
شنبه 04 مهر 1394, 13:26 عصر
با سلام خدمت دوستان

من می خوام روش ایجاد بانک اطلاعاتی از طریق برنامه نویسی و EF روی خود برنامه ایجاد کنم و زمان اول بار روی هر سیستم پیغام دهد ابتدا ایجاد بانک اطلاعاتی و بعد از آن نصب اطلاعات پایه و بعد فرم لاگین نمایش داده شود.
بنده روی پروژه های مختلفی که بچه های انجمن طراحی کردن تحقیق کردم و دیدم توی روت اصلی برنامه فایل txt یا SQL که اسکریپت هست رو از روی بانک اطلاعاتی ایجاد می کنند و طی ارتباط با EF و کلاس Connection ی مرتبط با آن این روش را پیاده سازی و می توان بانک اطلاعاتی SQL را ایجاد کرد.

حالا سوال:
1. در این روش نحوه Script تولید شده از بانک را کاملا توضیح دهید چون قبلا از دوستانی که آن را تولید کرده اند پرسیده و پاسخی نمی دهند.
2. آیا Script تولید شده برای SQL با نسخه های مختلف متفاوت است: یعنی بانک شما SQL 2014 است و اسکریپت تولید می کنید نمی توان روی SQL 2008 R2 ایجاد کرد؟ و دلیل نشدن این موضوع چیست؟

سلام
1. برای تولید script از Management Studio می‌تونی استفاده کنی. کافیه روی دیتابیس کلید راست
رو بزنی و گزینه‌های Tasks ~ Generate Script رو انتخاب کنی. اون جا وارد تنظیمات پیشرفته بشو و
هر جور که دلت می‌خواد تنظیمات رو انجام بده. حتا می‌تونی بگی که غیر از خود جدول‌ها داده‌های
اون‌ها رو هم برات Script کنه.
2. بله متفاوت هست. شما می‌تونی تو همون تنظیمات پیشرفته که خط بالا توضیح دادم، Target رو
مشخص کنی که مثلاً می‌خوای برای 2008 خروجی تولید کنه.

صبا صبوحی

saeidghadiri
شنبه 04 مهر 1394, 13:59 عصر
سلام
1. برای تولید script از Management Studio می‌تونی استفاده کنی. کافیه روی دیتابیس کلید راست
رو بزنی و گزینه‌های Tasks ~ Generate Script رو انتخاب کنی. اون جا وارد تنظیمات پیشرفته بشو و
هر جور که دلت می‌خواد تنظیمات رو انجام بده. حتا می‌تونی بگی که غیر از خود جدول‌ها داده‌های
اون‌ها رو هم برات Script کنه.
2. بله متفاوت هست. شما می‌تونی تو همون تنظیمات پیشرفته که خط بالا توضیح دادم، Target رو
مشخص کنی که مثلاً می‌خوای برای 2008 خروجی تولید کنه.

صبا صبوحی

سلام و ممنون

بنده این کارو رو انجام دادم اما دوستان میگن باید تغییرانی رو در آن اسکریپت بدی تا کار اسکریپت درست بشه

یا مثالی هست بزنید عملی من پروژه رو ببینم تا انجام بدم و من تازه کار هستم ممنون.

SabaSabouhi
شنبه 04 مهر 1394, 17:55 عصر
سلام و ممنون

بنده این کارو رو انجام دادم اما دوستان میگن باید تغییرانی رو در آن اسکریپت بدی تا کار اسکریپت درست بشه

یا مثالی هست بزنید عملی من پروژه رو ببینم تا انجام بدم و من تازه کار هستم ممنون.

سلام
نه گمان نمی‌کنم نیازی به تغییرات باشه، من که تاکنون مشکلی ندیدم، اگه تنظیمات رو درست انجام بدی بسیار عالی این script
رو می‌سازه.
البته برای این که متهم به طرفداری از مایکروسافت نشم، باید بگم که ابزارهای دیگه‌ای هم هست که همین کار رو انجام می‌ده
شرکت RegGate یکی از شرکت‌هایی هست که محصولات خوب و قابل اعتمادی تو زمینه‌ی Sql داره. یک مجموعه داره که اگه
اشتباه نکرده باشم اسمش Sql Tool Belt هست که مجموعه‌ای از نرم‌افزارهای مدیریت Sql هست و طبق گفته‌ی کسانی که
ازش استفاده کردن، بسیار عالی کار می‌کنه.
من دیتابیس رو با ویزارد نمی‌سازم، دقیقاً script رو خودم می‌نویسم، این شکلی راحت‌تر هستم.
مثال هم نیاز نداره، سه تا جدول بساز که به هم مربوط باشن، بعد script ازش بگیر و تو یه دیتابیس دیگه اجراش کن

صبا صبوحی

pbm_soy
شنبه 04 مهر 1394, 23:05 عصر
اسکریپت قاعدتا نباید نیاز به ویرایش داشته باشد مگر دستوراتی باشد مختص نسخه که فکر نمیکنم اسکریپت تولید شده توسط sql server. از چنین دستوراتی استفاده کنند!

دلیلش هم. اسکریپت با دستورات Sql است واین دستورات استاندارد است ودرهمه نسخه ها بدون مشکل اجرا میشوند حتی میتوانید در mysql هم اجرا کنید البته شاید باکمی ویرایش و بوجود آوردن شرایط مناسب اجرای اسکریپت!
اون تغییراتی که دیگران میگن شاید جزو موارد خاص باشد!
درهرصورت اسکریپتها مطلق نیستند ولی قاعدتا باید بدون مشکل اجرا شوند

saeidghadiri
دوشنبه 06 مهر 1394, 07:43 صبح
اسکریپت قاعدتا نباید نیاز به ویرایش داشته باشد مگر دستوراتی باشد مختص نسخه که فکر نمیکنم اسکریپت تولید شده توسط sql server. از چنین دستوراتی استفاده کنند!

دلیلش هم. اسکریپت با دستورات Sql است واین دستورات استاندارد است ودرهمه نسخه ها بدون مشکل اجرا میشوند حتی میتوانید در mysql هم اجرا کنید البته شاید باکمی ویرایش و بوجود آوردن شرایط مناسب اجرای اسکریپت!
اون تغییراتی که دیگران میگن شاید جزو موارد خاص باشد!
درهرصورت اسکریپتها مطلق نیستند ولی قاعدتا باید بدون مشکل اجرا شوند

سلام شما نمونه برنامه ای ساده دارید تا بشه این موضوع رو بهتر فهمید؟

saeidghadiri
دوشنبه 06 مهر 1394, 10:40 صبح
سلام
نه گمان نمی‌کنم نیازی به تغییرات باشه، من که تاکنون مشکلی ندیدم، اگه تنظیمات رو درست انجام بدی بسیار عالی این script
رو می‌سازه.
البته برای این که متهم به طرفداری از مایکروسافت نشم، باید بگم که ابزارهای دیگه‌ای هم هست که همین کار رو انجام می‌ده
شرکت RegGate یکی از شرکت‌هایی هست که محصولات خوب و قابل اعتمادی تو زمینه‌ی Sql داره. یک مجموعه داره که اگه
اشتباه نکرده باشم اسمش Sql Tool Belt هست که مجموعه‌ای از نرم‌افزارهای مدیریت Sql هست و طبق گفته‌ی کسانی که
ازش استفاده کردن، بسیار عالی کار می‌کنه.
من دیتابیس رو با ویزارد نمی‌سازم، دقیقاً script رو خودم می‌نویسم، این شکلی راحت‌تر هستم.
مثال هم نیاز نداره، سه تا جدول بساز که به هم مربوط باشن، بعد script ازش بگیر و تو یه دیتابیس دیگه اجراش کن

صبا صبوحی

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

SabaSabouhi
دوشنبه 06 مهر 1394, 11:56 صبح
سلام شما نمنوه برنامه ای دارید که در آن ایجاد بانک رو نوشته باشید بشه دیدش؟

سلام
خیر نمونه‌ای که بشه دید رو ندارم. اما در کل تولید دیتابیس نباید تو خود برنامه باشه. بلکه باید در setup ایجاد بشه.
من خودم از روش‌های attach کردن یا restore کردن دیتابیس به هیچ عنوان استفاده نمی‌کنم ( گویا این روش‌ها خیلی هم پر طرفدار هستن )
و همیشه به این شکل عمل می‌کنم که ابتدا دیتابیس رو می‌سازم و سپس محتویاتش رو پر می‌کنم. شامل schemaها، جدول‌ها، مقادیر توی
جدول‌ها، توابع و غیره.

و بجای این که دنبال نمونه باشی، یه کار کوچیک رو انجام بده. مثلاً اگه من یه پروژه با 150 تا جدول رو بهت نشون بدم چه کمکی بهت می‌کنه؟
همونطور که گفتم یه دیتابیس با 3 تا جدول بساز و همین کارهای رو انجام بده. اینطوری خیلی راحت‌تر قضیه رو یاد می‌گیری تا این که بخوای
از کار من یا یک نفر دیگه کپی کنی.
قدم اول رو بردار، هر جایی هم که به مشکل خوردی، من و دیگر دوستان اینجا هستیم و بهت کمک می‌کنیم.

صبا صبوحی

saeidghadiri
سه شنبه 07 مهر 1394, 07:36 صبح
سلام
خیر نمونه‌ای که بشه دید رو ندارم. اما در کل تولید دیتابیس نباید تو خود برنامه باشه. بلکه باید در setup ایجاد بشه.
من خودم از روش‌های attach کردن یا restore کردن دیتابیس به هیچ عنوان استفاده نمی‌کنم ( گویا این روش‌ها خیلی هم پر طرفدار هستن )
و همیشه به این شکل عمل می‌کنم که ابتدا دیتابیس رو می‌سازم و سپس محتویاتش رو پر می‌کنم. شامل schemaها، جدول‌ها، مقادیر توی
جدول‌ها، توابع و غیره.

و بجای این که دنبال نمونه باشی، یه کار کوچیک رو انجام بده. مثلاً اگه من یه پروژه با 150 تا جدول رو بهت نشون بدم چه کمکی بهت می‌کنه؟
همونطور که گفتم یه دیتابیس با 3 تا جدول بساز و همین کارهای رو انجام بده. اینطوری خیلی راحت‌تر قضیه رو یاد می‌گیری تا این که بخوای
از کار من یا یک نفر دیگه کپی کنی.
قدم اول رو بردار، هر جایی هم که به مشکل خوردی، من و دیگر دوستان اینجا هستیم و بهت کمک می‌کنیم.

صبا صبوحی

سلام موضوع اینه که من دیتابیس رو ساختم و 17 جدول هم داره اما مسله من همینه روش ایجاد بانک در سیستم کاربر برای اولین بار رو دوس دارم به صورت میکانیزم حرفه ای باشه و نه به صورت دستی خودم تو SQL ایجاد کنم و بعد بخوام Restore کنم

pbm_soy
چهارشنبه 08 مهر 1394, 00:08 صبح
دوست عزیز حتما نیازی نیست که دیتابیسی که داری را بصورت دستی اتچ کنید!
برنامه setup را طوری درست کنید که اینکار را خودش انجام دهد وحتی setup را طوری درست میکنید که .net و sql server موردنیازتون را هم خودش نصب کند بدون دخالت کاربر نهایی
ویا میتوانید با دو خط sql نوشتن فایل دیتابیس را میتوانید اتچ کنید یعنی در اولین بار که برنامه اجرا میشود میتوانید به sql server متصل شوید و این دستورات sql را بروی آن اجرا کنید تا دیتابیس اتچ شود کل اینکار با برنامه خودتون میتواتند انجام شود

هم بحث ساختن setup و بحث اتچ کردن دیتابیس تو این سایت قبلا مطرح شده است سرچ کنید پیدا میکنید
مثلا ایجاد setup بصورت silent

saeidghadiri
جمعه 10 مهر 1394, 09:58 صبح
دوست عزیز حتما نیازی نیست که دیتابیسی که داری را بصورت دستی اتچ کنید!
برنامه setup را طوری درست کنید که اینکار را خودش انجام دهد وحتی setup را طوری درست میکنید که .net و sql server موردنیازتون را هم خودش نصب کند بدون دخالت کاربر نهایی
ویا میتوانید با دو خط sql نوشتن فایل دیتابیس را میتوانید اتچ کنید یعنی در اولین بار که برنامه اجرا میشود میتوانید به sql server متصل شوید و این دستورات sql را بروی آن اجرا کنید تا دیتابیس اتچ شود کل اینکار با برنامه خودتون میتواتند انجام شود

هم بحث ساختن setup و بحث اتچ کردن دیتابیس تو این سایت قبلا مطرح شده است سرچ کنید پیدا میکنید
مثلا ایجاد setup بصورت silent

سلام ممنون از شما و SabaSabouhi دارم روی Setup کار می کنم سخته اما دارم یاد می گیرم که Setup رو کامل بسازم که نیاز به کارها نباشه. فقط نمیدونم چطوری برنامه های اولیه مورد نیازش رو Attach در Setup کنم.

باز ممنون.