基本思路
获取一个对象;调用 ISession.Delete();同步 ISession
public void DeleteNews(News news)
{
session.Delete(news);
session.Flush();
}
Code language: JavaScript (javascript)
newsDal.DeleteNews(new News() { ID = 3 });
直接通过new 一个对象 会报错
“NHibernate.NonUniqueObjectException”类型的未经处理的异常在 NHibernate.dll 中发生
其他信息: a different object with the same identifier value was already associated with the session
我们需要先查出来,然后再删除
var news = newsDal.GetByID(3);
newsDal.DeleteNews(news);
更新对象
基本思路
获取一个对象;改变它的一些属性;调用 ISession.Update();同步 ISession。
public void UpdateNews(News news)
{
session.Update(news);
session.Flush();
}
Code language: JavaScript (javascript)
var news = newsDal.GetByID(4);
news.Title = "好好学习 天天向上";
newsDal.UpdateNews(news);
Code language: JavaScript (javascript)
自动识别那些是修改的那些是新增的对象
public void SaveOrUpdate(News news)
{
session.SaveOrUpdate(news);
session.Flush();
}Code language: JavaScript (javascript)
然后我们创建两个对象 一个是new出来的 一个是查找出来的 那么调用同一个方法 我们的nhibernate会自动判断 是使用那个
private void button2_Click(object sender, EventArgs e)
{
var newNews = new News() { AddTime = DateTime.Now, Content = "hahahhahahha", Status = false, Title = "我是新增的" };
var news = newsDal.GetByID(4);
news.Title = "1111好好学习 天天向上111111";
newsDal.SaveOrUpdate(newNews);
newsDal.SaveOrUpdate(news);
}
Code language: JavaScript (javascript)
Previous: 插入数据
Next: NHibernate 中的事务