同时两者之间可以相互转换:
下面给出转换的例子
1 DbContext转为ObjectContext
using System.Data.Entity.Infrastructure
ObjectContext context =((IObjectContextAdapter)dbContext).ObjectContext
2ObjectContext转为DbContext
using System.Data.Entity.Infrastructure
DbContext context =((IObjectContextAdapter)objectContext).DbContext
二是ObjectContext包含DbContext,DbContext包含了ObjectContext的大部分方法和属性。DbContext是扩展了ObjectContext的类。
int r=0System.Data.Objects.ObjectParameter result = new System.Data.Objects.ObjectParameter("Result",System.Data.DbType.Int32)
movies.Movies_Create(Title, Convert.ToDateTime("ReleaseDate"), Genres_List, Price, Rating, result)
r=(int)result.Value//r就是你所需要的返回值
EF Code-Frist本身就是支持事务的。我们的每一次SaveChanges就是一个事务 *** 作,只需要在所有更改都完成后,调用这个方法就可以了。
如果你不愿意,网上还有人给出了手动的开启事务的代码(我没有测试过):
DbConnection con = ((IObjectContextAdapter)ctx).ObjectContext.Connection
con.Open()
using (var tran = con.BeginTransaction())
{
// 这里才是事务中的代码
tran.Commit()
}
con.Close()
以上都是针对一个DbContext,也就是一个数据库的时候,如果 *** 作涉及到多个数据库,还是使用分布式事务 *** 作比较靠谱。
原文链接:http://www.cnblogs.com/youring2/archive/2012/05/23/2514962.html
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)