我是开发新手,并尝试使用 Entity Framework 5.0(数据库优先方法)检索要在 ASP.NET Web 应用程序页面上的 FormView 中显示和编辑的记录,但我不确定解决此问题的最佳方法.
要检索记录,我使用以下代码:
protected void Page_Load(object sender, EventArgs e)
{
LoadData(int.Parse(Session["PersonID"].ToString()));
}
private void LoadData(int iPersonID)
{
using (PeopleEntities ctx = new PeopleEntities())
{
var query = (from a in ctx.People
where a.PersonID == iPersonID
select a).FirstOrDefault();
TextBoxFirstName.Text = query.FirstName;
TextBoxLastName.Text = query.LastName;
}
}
为了保存它,我使用:
protected void ButtonSave_Click(object sender, EventArgs e)
{
SaveEmployee(int.Parse(Session["PersonID"].ToString()));
}
private void SaveEmployee(int iPersonID = 0)
{
using (PeopleEntities ctx = new PeopleEntities())
{
var query = (from a in ctx.People
where a.PersonID == iPersonID
select a).FirstOrDefault();
query.FirstName = TextBoxFirstName.Text;
query.LastName = TextBoxLastName.Text;
ctx.SaveChanges();
}
}
让这两种方法分别查询数据库以检索和更新记录对我来说似乎很愚蠢,但是,我还是个新手,也许我只是遗漏了一些东西。有没有办法用实体填充 FormView 上的控件,并有一种方法来保存记录,而无需根据状态手动分配值(query.FirstName = TextBoxFirstName.Text 等)?
我已经看过 EntityDataSource,但我认为除了最简单的事情之外,这不是一个好的选择。
谁能告诉我我正在做的事情是否可以或提供更好的示例或指导?
非常感谢您的帮助!