ASP.NET在使用EF时遇到的“无效操作 连接被关闭”问题的摸索

本文分享了在项目中使用EF进行数据集查询时遇到的问题及解决方案,包括将DbContext属性从private更改为public以避免“System.InvalidOperationException”异常。

今天第一次使用EF来完成一个数据集的查询,磨磨唧唧查了半天资料,扣了半天代码,总算能正常运行了,于是我就想把这个方法用到我原来项目里面去,原项目是带工厂层的结构,于是乎我在DAL层写成了

public class zycsw_cms : DbContext, INews_EF
    {        
        pritave DbSet<News> News {get;set; }

        public List<Model.News> GetReadMore(string key)
        {
           
                zycsw_cms z = new zycsw_cms();
                List<Model.News> news = ((from p in z.News
                            where p.ReadMore == key.Trim()
                            orderby p.NewsId descending
                            select p).Take(10)).ToList();
                return news;
               
        }         
    }

然后,就一直出错,前台返回不了数据,一直提示参数为null。

跟踪调试了半天,也没有看到效果,只看到错误信息是“ServerVersion = “(((System.Data.Entity.DbContext)(z)).Database.Connection).ServerVersion”引发了“System.InvalidOperationException”类型的异常”.

百度了半天也没找到原因,后来想到测试正常的时候pritave DbSet<News> News {get;set; }是public的,于是乎换成了public结果就正确了。

却找不到为何要声明成public的原因。

哪位高手能给讲讲或者给个资料看看。

非常感谢。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

踏平扶桑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值