PDA

View Full Version : سوال: خطا در متد CreateDatabase در ENTITY FRAMWORK



esafb52
دوشنبه 28 مرداد 1392, 22:23 عصر
با سلام من دوست دارم زمانی که ستاپ میسازم دیتابیس رو خود برنامه بسازه و این کد رو مینوسم اما این خطا رو میده و به کانکشن گیر میده؟!!!!!!
خطا:
---------------------------

---------------------------
Unable to complete operation. The supplied SqlConnection does not specify an initial catalog.
---------------------------
OK
---------------------------

کد:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace testef
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
Database1Entities db= new Database1Entities();
try
{
if (!db.DatabaseExists())
{
db.CreateDatabase();
}
}
catch (Exception exception)
{

MessageBox.Show(exception.Message);
}
Application.Run(new Form1());
}
}
}

نوع پروژه اینتیتی فریم ورک و با دات نت 4

mousa1992
سه شنبه 29 مرداد 1392, 13:20 عصر
سلام
connection string رو قرار بده

esafb52
سه شنبه 29 مرداد 1392, 13:42 عصر
کانکشن استرینگ من همونه که خود دل ساخته و تو فایل کانفیگ هست
<connectionStrings>
<add name="Database1Entities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\SQLEXPRESS;attachdbfilename=|DataDirector y|\Database1.mdf;integrated security=True;user instance=True;multipleactiveresultsets=True;App=En tityFramework&quot;" providerName="System.Data.EntityClient"/>
</connectionStrings>

mousa1992
سه شنبه 29 مرداد 1392, 13:57 عصر
<connectionStrings>
<add name="Database1Entities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\SQLEXPRESS;database=YourDatabaseName;atta chdbfilename=|DataDirector y|\Database1.mdf;integrated security=True;user instance=True;multipleactiveresultsets=True;App=En tityFramework&quot;" providerName="System.Data.EntityClient"/>
</connectionStrings>


به این تغییرش بده و نتیجه رو اعلام کن
database=YourDatabaseName این قسمت اضافه شده به جا yourDatabaseName نام دیتابیس قرار میگیره

esafb52
سه شنبه 29 مرداد 1392, 15:23 عصر
الان این خطا رو میده
:
The underlying provider failed on Open.

esafb52
سه شنبه 29 مرداد 1392, 16:20 عصر
خب جالب شد الان جریانش رو تا حدودی فهمیدم شما اگه این کانکشن رو بذارین براتون فایل دیتابیس رو درست میکنه اما اگه باز اونها رو بصورت دستی حذف کنی خطای
کانکشن
<connectionStrings>
<add name="Database1Entities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\SQLEXPRESS;database=YourDatabaseName;atta chdbfilename=|DataDirector y|\Database1.mdf;integrated security=True;user instance=True;multipleactiveresultsets=True;App=En tityFramework&quot;" providerName="System.Data.EntityClient"/>
</connectionStrings>



خطا
The underlying provider failed on Open.

رو میده و اگر صدبار باز اجرا کنی همین خطا رو میده کافیه یکبار متد DeleteDatabase رو فراخوانی کنی انوقت خطا میده که فایل دیتابیس نیست و اگر باز برنامه رو اجرا کنی با متد CreateDatabase دوباره میتونه اون رو بسازه!!!!!!

Direlap
سه شنبه 29 مرداد 1392, 16:36 عصر
تو کدوم ورژن EF این اتفاقا میفته ؟ 4 یا 5 ؟

esafb52
سه شنبه 29 مرداد 1392, 19:14 عصر
4 هست ورژن پیش فرض ویژوال استدیو 2010sp1
راستی چطور ورژن 5 روش نصب کنم
ممنون

Direlap
سه شنبه 29 مرداد 1392, 19:39 عصر
تو این لینک و لینک ابتدای صفحه توضیح داده :

http://www.nuget.org/packages/EntityFramework/5.0.0