MVC+EF这一组合早就火遍大江南北了,现在有点快过气了。我没正点赶上二路汽车,就当做驴车过来的吧,重新回顾一下它们的用法,记录下来。
查询
public ActionResult Index(string Id)
{
using (TestContext testContext = new TestContext())
{
int id = string.IsNullOrEmpty(Id) ? 2 : int.Parse(Id);
//查询方法一
//UserInfo userInfo = (from u in testContext.UserInfo where u.Id == id select u).FirstOrDefault();
//查询方法二
UserInfo userInfo = testContext.UserInfo.FirstOrDefault(a => a.Id == id);
if (userInfo == null)
{
return View();
}
UserInfoModel model = new UserInfoModel()
{
Id = userInfo.Id,
UserId = userInfo.UserId,
UserName = userInfo.UserName,
AddTime = userInfo.AddTime,
Gender = userInfo.Gender
};
return View(model);
}
}
添加
[HttpPost]
public void Add(UserInfoModel model)
{
using (TestContext testContext = new TestContext())
{
UserInfo userInfo = new UserInfo()
{
Id = model.Id,
UserId = model.UserId,
UserName = model.UserName,
AddTime = model.AddTime,
Gender = model.Gender
};
testContext.UserInfo.Add(userInfo);
//调用SaveChanges()才会执行Sql操作
testContext.SaveChanges();
//id值为自增主键的值
int id = userInfo.Id;
Index(id.ToString());
}
}
修改
无论是修改或是删除都需要先查询到对应的数据,然后再进行其他操作。
[HttpPost]
public void Edit(UserInfoModel model)
{
using (TestContext testContext = new TestContext())
{
UserInfo userInfo = (from u in testContext.UserInfo where u.Id == model.Id select u).FirstOrDefault();
userInfo.UserId = model.UserId;
userInfo.UserName = model.UserName;
userInfo.AddTime = model.AddTime;
userInfo.Gender = model.Gender;
testContext.SaveChanges();
}
Index(model.Id.ToString());
}
删除
[HttpPost]
public void Remove(UserInfoModel model)
{
using (TestContext testContext = new TestContext())
{
UserInfo userInfo = (from u in testContext.UserInfo where u.Id == model.Id select u).FirstOrDefault();
testContext.UserInfo.Remove(userInfo);
testContext.SaveChanges();
}
Index(model.Id.ToString());
}
EF中使用Sql语句操作数据库
public string Delete(int Id)
{
try
{
TestContext testContext = new TestContext();
testContext.ExecuteStoreCommand(
string.Format("delete from UserInfo where Id = {0} " ,Id));
testContext.ExecuteStoreCommand("delete from UserInfo where Id=@Id and UserName=@UserName",new SqlParameter("@Id", 100),new SqlParameter("@UserName","果果修改"));
testContext.Dispose();
return "Success";
}
catch
{
return "Fail";
}
}