我正在使用代码第一种方法,我知道我不应该在我的控制器中有这么多代码我不断收到此错误
System.Data.SqlClient.SqlException'发生在EntityFramework.dll中,但未在用户代码中处理
内部异常就是这个
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供者:SQL网络接口,
这是我的代码
[HttpPost]
public ActionResult Registration(Models.Users model)
{
if (ModelState.IsValid)
{
using (var Ref_DB = new MainDBContext())
{
var encryptedPassword = CustomLibraries.CustomEncrypt.Encrypt(model.Password);
var user = Ref_DB.Users.Create();//this is where error occours
user.Email = model.Email;
user.Password = encryptedPassword;
user.Country = model.Country;
user.Name = model.Name;
Ref_DB.Users.Add(user);
Ref_DB.SaveChanges();
}
}
else
{
ModelState.AddModelError("", "One or more feilds have been errors");
}
return View();
我意识到我的连接字符串可能是问题,这是我的连接字符串
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|MyDatabase.mdf;Integrated Security=True"
providerName="System.Data.SqlClient"/>
.mdf文件位于我的App_Data文件夹
中这是我的模特
public class MainDBContext:DbContext
{
public MainDBContext()
:base("name=DefaultConnection")
{
}
public DbSet<Models.Users> Users { get; set; }
}
这是用户类
public class Users
{
#region [- Ctor -]
public Users()
{
}
#endregion
[Key]
public int Id { get; set; }
#region [- Email -]
[Required]
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
#endregion
#region [- PassWord -]
[Required]
[DataType(DataType.Password)]
public string Password { get; set; }
#endregion
public string Name { get; set; }
public string Country { get; set; }
}
答案 0 :(得分:0)
是的,您的连接字符串是错误的。您必须附带mdf
文件就像这样\MyDatabase.mdf
。
完整的连接字符串:
<add name="DefaultConnection" connectionString="Data Source=
(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Integrated
Security=True" providerName="System.Data.SqlClient"/>
更新:
使用此:
var user = new Models.Users();
而不是:
var user = Ref_DB.Users.Create();//this is where error occurs
更新2:
在cmd prompt
sqllocaldb创建“v12.0”
您必须将目录更改为您的安装,如下所示:
C:\Program Files\Microsoft SQL Server\120\Tools\Binn>sqllocaldb create "v12.0"
更新3: