今天第一次使用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的原因。
哪位高手能给讲讲或者给个资料看看。
非常感谢。

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

1243

被折叠的 条评论
为什么被折叠?



