entity-framework-4 – 通过扩展方法的IDbSet和公开包含方法
发布时间:2020-05-23 16:45:27 所属栏目:asp.Net 来源:互联网
导读:我使用EF的Code-First方法,我想使用IDbSet而不是DbSet,所以我可以用嘲讽单元测试。我的问题是在需要时使用Include()方法来加载,但是不能通过IDbSet来显示Include()。我看到一个使用扩展方法来显示Include()的示例代码,但它似乎不适用于我;此示例中的objec
|
我使用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类型。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ado.net – ASP.NET:如何从web.config ConnectionString创
- asp.net-mvc – Url.Action生成查询字符串,以任何方式生成完
- asp.net-mvc – 获取Route,ASP.net MVC中的当前片段
- ASP.net检查页面是http还是https
- asp.net-mvc – 带有实体框架的ASP.NET MVC
- 如何从ASP.NET MVC视图显示存储在数据库中的HTML?
- oauth-2.0 – 在MVC6应用程序中的OAuth令牌到期
- 如何在ASP.NET中获取原始请求体?
- asp.net-mvc-3 – ASP.Net MVC隐藏/显示基于安全性的菜单项
- asp.net – 使用EF4代码优先:如何在不丢失数据的情况下更改
推荐文章
站长推荐
- asp.net-mvc – 使用signalr时,将有任何连接限制
- ASP.NET – 在屏幕底部显示应用程序生成日期/信息
- asp.net – 如何为Katana/Owin自主托管应用程序设
- 悟透JavaScript
- asp.net-mvc – ASP.net 5 MVC 6 bower.json和pr
- asp.net – 用于Microsoft.Office.Interop.Excel
- ASP.NET(MVC2)中%:%做了什么?
- asp.net – 从_layout.cshtml将常量值传递给Angu
- asp.net-mvc-4 – 是否可以将MVC Razor视图保存到
- asp.net-mvc – JSP相当于ASP.NET MVC的部分视图
热点阅读
