2011-11-02 114 views
0

我使用mssql 2008服務器(在我的webhotel上),我試圖從我的代碼中保存數據。無法找到EntitySet名稱'xxxxx_dk_dbEntities.Vehicle'

我已經在這裏這個小測試代碼,讓我這個錯誤在主題

Context = new XXX_dk_dbEntities(); 
var vehicle = new Vehicle { Name = "test" }; 
Context.AddObject("Units", vehicle); 
Context.SaveChanges(); 

編輯:更改Context.AddObject(vehicle.GetType()名稱,車輛);到Context.AddObject(「Something」,車輛);給出相同的錯誤,所以我認爲它可能是我的連接字符串或我的EF需要適當的設置,無論如何,我可以測試?

編輯2:將其更改爲現在使我的錯誤{「底層提供商失敗打開。」}和檢查,給了我這個錯誤{「登錄失敗用戶'xxxxx_dk'。」}所以它必須是我的ConnectionString

<add name="xxxxx_dk_dbEntities" connectionString="metadata=res://*/Areas.Units.UnitsModel.csdl|res://*/Areas.Units.UnitsModel.ssdl|res://*/Areas.Units.UnitsModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=mssql1.unoeuro.com;initial catalog=xxxxxxx_dk_db;persist security info=True;user id=xxxxxxxx_dk;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 

這是顯示我的EDMX結構solutionexplore http://www.gratisimage.dk/graphic/images/2011/November/02/7BBD_4EB183FB.jpg

enter image description here

enter image description here

+0

不知道,但如果出現的arent一個實體集的名字,我不認爲你可以添加的ConnectionString它。看起來像一輛車是一種特殊的單位。 Arent在您的環境中定義了enity集合嗎? – Syska

+0

Iam不確定,我沒有做過,認爲EF自動處理大部分它? – Mech0z

+0

永遠不要少,它需要一個地方來「保存」車輛上的附加信息。只有我能想到的地方是桌子。那麼AddObject不僅僅是一個對象?所以它在嘗試保存時爲你做所有的工作?似乎有很多無用的東西來控制實體。另外...你將如何從數據庫中獲得車輛? – Syska

回答

0

當我發現我不得不添加刪除(出於某種原因,它使用machine.config中指定的連接字符串),並將我自己的提供程序的名稱更改爲「AspNetSqlMembershipProvider」我創建了一個新的連接字符串,這樣可以刪除舊的ConnectionString的(奇怪!),創建一個類似

<membership> 
    <providers> 
     <add connectionStringName="unoeurotest" enablePasswordRetrieval="false" 
     enablePasswordReset="true" requiresQuestionAndAnswer="false" 
     requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" 
     minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" 
     applicationName="/" name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
    </providers> 
</membership> 

定製memberprovider然後做一個只爲這

<add name="unoeurotest" connectionString="Data Source=mssql1.unoeuro.com;Initial Catalog=xxxxxx_dk_db;User Id=xxxxx_dk;Password=xxxxxx;MultipleActiveResultSets=True;"/>