entity-framework-4 – 通过扩展方法的IDbSet和公开包含方法
发布时间:2020-12-16 00:35:53 所属栏目:asp.Net 来源:网络整理
导读:我使用EF的Code-First方法,我想使用IDbSet而不是DbSet,所以我可以用嘲讽单元测试。我的问题是在需要时使用Include()方法来加载,但是不能通过IDbSet来显示Include()。我看到一个使用扩展方法来显示Include()的示例代码,但它似乎不适用于我;此示例中的obje
我使用EF的Code-First方法,我想使用IDbSet而不是DbSet,所以我可以用嘲讽单元测试。我的问题是在需要时使用Include()方法来加载,但是不能通过IDbSet来显示Include()。我看到一个使用扩展方法来显示Include()的示例代码,但它似乎不适用于我;此示例中的objectQuery对象始终为空。请让我知道如何解决这个问题。
public static class IQueryableExtension { public static IQueryable<T> Include<T>(this IQueryable<T> source,string path) where T : class { ObjectQuery<T> objectQuery = source as ObjectQuery<T>; if (objectQuery != null) { return objectQuery.Include(path); } return source; } public static IQueryable<T> Include<T,TProperty>(this IQueryable<T> source,System.Linq.Expressions.Expression<Func<T,TProperty>> path) where T : class { ObjectQuery<T> objectQuery = source as ObjectQuery<T>; if (objectQuery != null) { return source.Include(path); } return source; } } 解决方法
如果您使用CTP5,则无需编写此扩展名。
CTP5 provides包含IQueryable的扩展名。您必须参考EntityFramework.dll(CTP5)并添加:
using System.Data.Entity; 您的版本可能无法正常工作,因为您将源转换为ObjectQuery,但最有可能是DbQuery类型。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – ASP.NET MVC 3用户验证
- asp.net-mvc – 输出在剃刀通过变量?
- 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automap
- 在ASP.NET中模拟成员资格用户
- asp.net-web-api – 如何在Swashbuckle中替换Swagger UI标题
- asp.net-mvc – 如何启用创建,同时还禁用Kendo Grid的编辑
- 问题在ASP.NET 5(Core)中添加对类库项目的引用
- asp.net – SQL Server 2008架构更改的最佳实践
- kendo-ui – Kendo DataSource如何在使用DataTable时定义Mo
- asp.net-mvc-3 – 使用javascript代码访问viewbag
推荐文章
站长推荐
- Asp.net会话到期重定向到登录页面
- asp.net-core – .net核心自定义身份验证中的Use
- 我可以在asp.net-mvc 3中的@ Ajax.Actionlink中传
- asp.net-mvc-3 – 向Html.ActionLink添加一个类
- asp.net mvc 设置一个action的访问人数,达到上线
- asp.net-mvc – 使用没有主键的查找在dbSet中查找
- asp.net-mvc – ASP.NET MVC 4 Datagrid
- asp.net – 无法启用/正在运行Web API属性路由
- asp.net – Page.PreLoad事件未出现在visual stu
- 一个ASP.NET应用程序(意外)在多个应用程序域或频
热点阅读