博客
关于我
linq to entity常用操作
阅读量:790 次
发布时间:2023-01-31

本文共 1271 字,大约阅读时间需要 4 分钟。

聚合函数查询实践

在Entity Framework的应用中,聚合函数是数据一致性(transaction consistency)的一种重要体现。一旦上线,耦合函数查询可以有效提升数据的安全性,但也需要注意实现细节。

以下示例展示了一个使用聚合函数查询的具体实现:

double sum = 0;using (xxxEntities db = new xxxEntities()){    sum = db.userinfo.AsNoTracking().Where(d => d.id == id).Sum(m => (double?)m.money).GetValueOrDefault();}return sum;

其中,AsNoTracking()主要用于禁用ChangeTracking,这对于避免不必要的误差存储非常实用,尤其在单次读取的场景下。Sum函数是用来聚合金额字段的,这里还使用了GetValueOrDefault()来保证调用成功。


删除操作实践

在删除操作中,直接调用Remove方法可能会导致事务处理上的问题,尤其是在包含Other 收获的复杂场景。因此,建议按照以下方式进行删除操作:

int result = 0;if (id > 0){    using (gghdbEntities db = new gghdbEntities())    {        var data = db.quote.Where(d => d.id == id).FirstOrDefault();        db.quote.Remove(data);        db.SaveChanges();        result = 1;    }}return result;

这个方法的优点在于按先取再删的方式操作,确保删除可以被审查和断言。保存的SaveChanges()方法也能传输事务操作,使删除操作更加安全。


事务执行实践(Net4.0以上版本支持)

在大多数情况下,事务可以显著提升应用的健壮性。你可以像这样进行事务的使用:

using (xxxEntities db = new xxxEntities()){    using (TransactionScope transaction = new TransactionScope())    {        // 你的业务逻辑代码...                transaction.Complete();    }}

事务流程需要明确将所有需要滚背的事务操作包含在同一个TransactionScope中。这种方法可以避免因未捕获的异常导致数据不一致的情况。此外,别忘了添加必要的引用:

using System.Transactions;

如果你需要将事务的语义设置为严格(Required),可以使用TransactionScope的构造函数参数来指定。总之,事务是确保数据一致性的强大工具,使用得当能够显著提升系统的可靠性。

转载地址:http://ekwfk.baihongyu.com/

你可能感兴趣的文章
LINQ中的Func委托
查看>>
Linq中的group by多表多字段
查看>>
linq实现分页加组合查询
查看>>
LINQ的ElementAt与ElementAtOrDefault方法
查看>>
linq的两个精品小工具
查看>>
LinQ的使用
查看>>
LINQ能不能用系列(一)LINQ to Object 效率比对
查看>>
LINQ能不能用系列(二)LINQ to SQL 效率比对
查看>>
LinQ:list基础操作
查看>>
Linr PS toolkit(Photoshop开发人员辅助工具)
查看>>
Lintcode 74 First Bad Version solution 题解
查看>>
LintCode A + B Problem
查看>>
LintCode Python 简单级题目 8.旋转字符串
查看>>
LintCode 第一题fizz buzz
查看>>
lintcode-418-整数转罗马数字
查看>>
Lintcode91 Minimum Adjustment Cost solution 题解
查看>>
Lintcode: Compare Strings
查看>>
LintCode: Longest Common Substring
查看>>
Lintcode: Nuts & Bolts Problem
查看>>
Lintcode: O(1) Check Power of 2
查看>>