我正在开发一个使用 EF 进行数据库访问的库。为了避免将实体暴露在库之外,我将所有表的访问权限设置为内部(我还将实体容器访问权限设置为内部)。问题是现在,在库中,当我尝试通过其 id 获取实体时,Where
查询抛出异常,我不知道为什么。
内部访问已在图表(.edmx 文件)中设置,并且在我用作库内的工厂的静态类中,我有如下内容:
var id = 1234;
var mec = new MyEntitiesContainer();
var myEntity = mec.MyEntities.Where(e => e.MyEntitiesId == id).FirstOrDefault();
简单的 where 查询,通过其 id 从数据库中获取具体实体(行)。
当所有实体类访问都是公共的时,没有问题,但是当我将它们设置为内部时,会引发此异常:
System.ArgumentNullException: Value cannot be null. Parameter name: source
at System.Linq.Queryable.Where[TSource](IQueryable`1 source, Expression`1 predicate)
有什么建议么?