我使用mssql 2008服务器(在我的webhotel),我正在尝试从我的代码中保存数据。
我在这里制作了这个小测试代码,在主题
中给出了这个错误 Context = new XXX_dk_dbEntities();
var vehicle = new Vehicle { Name = "test" };
Context.AddObject("Units", vehicle);
Context.SaveChanges();
编辑:更改Context.AddObject(vehicle.GetType()。名称,车辆);到Context.AddObject(“Something”,vehicle);给出了同样的错误,所以我认为它可能是我的连接字符串或我的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="data source=mssql1.unoeuro.com;initial catalog=xxxxxxx_dk_db;persist security info=True;user id=xxxxxxxx_dk;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
这是解决方案,展示了我的edmx结构
答案 0 :(得分:0)
我发现之后我必须添加删除(由于某种原因它使用了在machine.config中指定的连接字符串)并将我自己的提供者的名称更改为“AspNetSqlMembershipProvider”我为此创建了一个新的连接字符串,因此删除旧的connectionstring(Wierd!),创建一个像
这样的自定义成员提供者<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>
然后只为此
创建一个连接字符串<add name="unoeurotest" connectionString="Data Source=mssql1.unoeuro.com;Initial Catalog=xxxxxx_dk_db;User Id=xxxxx_dk;Password=xxxxxx;MultipleActiveResultSets=True;"/>