MVC中DbContext 和ObjectContext两者的区别

MVC中DbContext 和ObjectContext两者的区别,第1张

一是ObjectContext是一种模型优先的开发模式,DbContext是代码优先的开发模式。这是两者最根本的区别。

同时两者之间可以相互转换:

下面给出转换的例子

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=0

System.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


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11211685.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存