c# ef报错_C#使用EF(EntityFramework)关于访问数据不同步问题

0

由于对c#EntityFramework的了解还不够,滥用EF,导致我在写一个c#窗体项目的时候,遇到了这个问题并让我花费了大量的时间去修改。写下此文来记录我犯的错误。

我的项目场景是:

winfrom窗体程序,允许许多客户端同时运行在不同的机器上的,客户端分为用户和管理者。用来实现不同的功能。全部客户端访问的是同一数据库。

但是不管是winfrom窗体还是web应用程序数据使用EF(EntityFramework)出现数据不同步问题大多数情况下都是同一个问题导致的。

出现的问题场景:

一个客户端运行的时候是检查不到这个问题的,如果你的项目只是一个客户端的话就不存在这个问题。如果是多个客户端同时运行,就比如A、B客户端现在都已经打开了同一个Employee(员工)的个人信息面板,然后在A客户端上对A的信息进行更新,然后直接在B客户端刷新这个页面,而B客户端显示的信息还是之前的信息,不是A客户端更新过的最新信息。

问题的原因:

RepastEntities 类是针对我的项目VS自动生成的(派生DbContext的上下文类),DbContext类是负责与数据交互作为对象的主要类。在此贴出我的代码:namespace Repast.Dao

{

static class RepastEntityDb

{

public static RepastEntities db = new RepastEntities();

}

}

Dao类:namespace Repast.Dao

{

class EmployeeDaoImpl : EmployeeDao

{

private RepastEntities db =RepastEntityDb.db;

//返回所有的员工

public List AllEmployee(string sort)

{

List list = null;

try

{

//linq sql 语句

var sql = from e in db.Employee select e;

list = sql.ToList();

if (list.Count == 0)

{

list = null;

}

} catch (Exception e)

{

Console.WriteLine(e.Message);

Console.WriteLine("Dao.EmployeeDaoI

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值