ورود

View Full Version : مشکل در استفاده از Entity FrameWork



m_akbari11
جمعه 20 بهمن 1391, 11:26 صبح
سلام . سوالی از حضرتعالی داشتم
بنده با Entity FrameWork در سایتم استفاده کردم ولی هر لحظه یه مشکل جدید پیش میاد .

Entity رو که راه انداختم ، MemberShip که استفاده نموده بودم از کار افتاد .
وقتی اومدم و آدرس دیتا سورس Entity FrameWork رو به Membership دادم ، خطاهای زیر رخ داد :


Unable to open the physical file "D:\Barname nevisi\ASP\SiteComputer\SMPL_AKBARI_SITE\AKEntityM \AKBUsers.mdf". Operating system error 32: "32(failed to retrieve text for this error. Reason: 15105)".
An attempt to attach an auto-named database for file D:\Barname nevisi\ASP\SiteComputer\SMPL_AKBARI_SITE\AKEntityM \AKBUsers.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.



این اون چیزی هستش که در Web.config استفاده نموده ام :

<appSettings>
<add key="ConnectionValue" value="Data Source=.\sqlexpress;AttachDbFilename=D:\Barname nevisi\ASP\SiteComputer\SMPL_AKBARI_SITE\AKEntityM \AKBUsers.mdf;Integrated Security=True" />
</appSettings>
<connectionStrings>

<add name="AKBEntities" connectionString="metadata=res://*/AKModel.csdl|res://*/AKModel.ssdl|res://*/AKModel.msl;provider=System.Data.SqlClient;provide r connection string=&quot;Data Source=.\SQLEXPRESS;AttachDbFilename=D:\Barname nevisi\ASP\SiteComputer\SMPL_AKBARI_SITE\AKEntityM \AKBUsers.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
<add name="ApplicationServices" connectionString="Data Source=.\sqlexpress;AttachDbFilename=C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AKBUsers.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />
<add name="AKBUsersConnectionString" connectionString="Data Source=.\sqlexpress;AttachDbFilename=D:\Barname nevisi\ASP\SiteComputer\SMPL_AKBARI_SITE\AKEntityM \AKBUsers.mdf;Integrated Security=True;Pooling=False" providerName="System.Data.SqlClient" />
</connectionStrings>


اصلا این Entity Frame Work برای چه یه دیتا بیس جدید در داخل خودش میسازه و با اون کار میکنه ؟ مگه نباید با همون دیتا بیسی که موقع ایجاد بهش داده میشه کار کنه ؟


آدرس واقعی و اصلی دیتا بیس

Data Source=.\SQLEXPRESS;AttachDbFilename="C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AKBUsers.mdf";Integrated Security=True;Connect Timeout=30;User Instance=True

هستش ولی چون Entity آدرس دیگری داشت ، حتی آدرس های قبلیم رو هم به آدرس Entity تغییر دادم ولی مشکل حل نشد.

در حالت عادی که به آدرس Connection String های قبلیم دست نزده بودم و فقط کانکشن Entity یه Webconfig اضافه کرده بودم ، خطای زیر رو می داد :

Cannot open user default database. Login failed.
Login failed for user 'Mohammad-PC\Mohammad'.


واقعا گیج شدم.

در حال حاضر اصلی ترین و بزرگترین مشکل بنده این هستش که چرا در کلاس Entity که بنده ساخته ام یک Database ساخته شده و در AppConfig این کلاس ، Entity بنده به اون وصل شده . مگه نباید به همون اصلیه وصل بشه ؟
خواهشا کمک کنید.

m_akbari11
جمعه 20 بهمن 1391, 11:47 صبح
سلام .

این اون چیزی هستش که در Web.config استفاده نموده ام :
.
.
.
در حال حاضر اصلی ترین و بزرگترین مشکل بنده این هستش که چرا در کلاس Entity که بنده ساخته ام یک Database ساخته شده و در AppConfig این کلاس ، Entity بنده به اون وصل شده . مگه نباید به همون اصلیه وصل بشه ؟
خواهشا کمک کنید.

مشکل خطای Login Faild برطرف شد و به Appsettings این قسمت رو اضافه کردم و حل شد :
Connect Timeout=30;User Instance=True

اما مشکل اصلی هنوز باقیست :
که چرا در کلاس Entity که بنده ساخته ام یک Database داخل خودش ساخته شده و در AppConfig در این کلاس ، یه کانکشن استرینگ داره که به جای اینکه به دیتابیسی که من آدرسش رو دادم وصل بشه ، میره و به دیتا بیسی که خودش ساخته وصل میشه (با همان حجم دیتابیسم ) .
مگه نباید به همون اصلیه وصل بشه ؟

فکر کنم اشتباه کردم اومدم سراغ Entity.
با همون command ها داشتیم راحت زندگیمون رو میکردیما !:لبخند::لبخند:

mohsen musavi
جمعه 20 بهمن 1391, 23:41 عصر
دوست عزیز sqlserver نصبه؟شما از طریق sqlexpress Engine داری وصل میشی.
من در یک پروژه از هر دو حالت استفاده کردم و جواب داد.رشته اتصال نمونه:

<add name="ConnectionName" connectionString="Data Source=.;Initial Catalog=DbName;Persist Security Info=True;User ID=UserName;Password=UserPass" providerName="System.Data.SqlClient" />