2011-11-02 71 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;"/>