本文的内容是按照李大哥的博客 进行测试的,由于测试过程中遇到一些问题,特意写下来,表结构以及实体类都与李大哥的雷同,哈哈还好没有版权保护,否则我就惨了阿!
在李大哥的博客中,主表与从表是在一个事务中一起更新到数据库中取的,但是在实际的开发中应该是先更新主表纪录,然后在更新从表中的纪录。例如,你写了一篇博客,开始肯定是没有评论的别人看了你的博客后发表评论。
这个问题可能比较弱智啊,但是刚开始研究Castle,还是搞了半天才弄出来的,也算是自己的精华了哈哈!
1.增加主表纪录:
try
{
b.Blog_name = "9999999";
b.Blog_author = "0000000";
b.Create();
Response.Write("OK");
}
catch (Exception ex)
{
Response.Write("Error:" + ex.Message);
}
2.增加从表纪录
Blog blog = new Blog();
//下面两行不需要写,只给出ID即可
//blog.Blog_name = "333";
//blog.Blog_author = "333";
blog.Blogid = 2;//此处直接给出的ID,可以获取
//执行事务,持久化对象到数据库
using (TransactionScope tran = new TransactionScope())
{
try
{
//blog.Save();由于主表中有记录因此这一行不要的
//创建Post对象
Post post = new Post();
post.Post_title = "同志的讲话很深刻的啊,学习一下!!";
post.Post_categories = "中国中央文献资料";
post.Blog = blog;
post.Create();
tran.VoteCommit();
}
catch
{
tran.VoteRollBack();
}
}