我有一个Web API,其中我的存储库类具有硬编码的数据。我想修改它以从SQL Server数据库中获取相同的数据。我在DAL文件夹中创建了DB Context类,在web.config文件中创建了一个与上下文相同名称的连接字符串 - MyClassesContext
public class myRepository
{
public myClasses.Type[] GetAllTypes()
{
return new myClasses.Type[]
{
new myClasses.Type
{
typeId="1",
typeVal = "New"
},
new myClasses.Type
{
typeId="2",
typeVal = "Old"
}
};
}
public myClasses.Employee[] GetAllEmployees()
{
return new myClasses.Employee[]
{
new myClasses.Employee
{
empId="111111",
empFName = "Jane",
empLName="Doe"
},
new myClasses.Employee
{
empId="222222",
empFName = "John",
empLName="Doe"
}
};
}
public bool VerifyEmployeeId(string id)
{
myClasses.Employee[] emp = new myClasses.Employee[]
{
new myClasses.Employee
{
empId="111111",
empFName = "Jane",
empLName="Doe"
},
new myClasses.Employee
{
empId="222222",
empFName = "John",
empLName="Doe"
}
};
for (var i = 0; i <= emp.Length - 1; i++)
{
if (emp[i].empId == id)
return true;
}
return false;
}
}
和我的模特课:
public class myClasses
{
public class Employee
{
public string empId { get; set; }
public string empFName { get; set; }
public string empLName { get; set; }
}
public class Type
{
public string typeId { get; set; }
public string typeVal { get; set; }
}
}
这是我的DBContext:
using System.Data.Entity;
using myClassesAPI.Models;
namespace myClassesAPI.DAL
{
public class myClassesContext : DbContext
{
public DbSet<myClasses.Employee> Employees { get; set; }
public DbSet<myClasses.Type> Types { get; set; }
}
}
现在这里缺少的链接是如何连接DBContext类。我做了大量的谷歌搜索,但无法找到任何相关的东西。想知道是否有人能指出我正确的方向
答案 0 :(得分:0)
在指定要连接到的数据库连接字符串后,如何使用连接字符串到实际DB:
public class myClassesContext : DbContext
{
public myClassesContext ()
: base("connection_string")
{
}
}
<configuration>
<connectionStrings>
<add name="connection_string"
providerName="..."
connectionString="..."/>
</connectionStrings>
</configuration>
答案 1 :(得分:0)
考虑到所有内容都已配置并正常工作(连接字符串,数据库访问等),在您的存储库中,只需使用您的DbContext类。获取所有类型列表的示例:
public List<Type> GetAllTypes()
{
//Create an instance of your dbContext Class.
using (myClassesContext context = new myClassesContext ())
{
//Return all the Type's
return context.Type.ToList()
}
}
我认为您需要阅读和研究有关EntityFramework的更多信息,以便更好地了解工作原理,以及如何使用LINQ查询数据库。这是一个很好的起点:
修改强> 我使用连接字符串的这个例子:
<add name="myClassesContext "
providerName="System.Data.SqlClient"
connectionString="Data Source=ServerName\InstanceName;Initial Catalog=DatabaseName;Integrated Security=True;MultipleActiveResultSets=True" />
然后,在DbContext文件中设置相同的连接字符串名称:
public myClassesContext ()
: base(Connection.GetConnectionString("myClassesContext"))
{
}