相关疑难解决方法(0)

实体框架和连接池

我最近开始在我的.NET 4.0应用程序中使用Entity Framework 4.0,并对与池化相关的一些事情感到好奇.

  1. 据我所知,连接池由ADO.NET数据提供程序管理,在我的情况下是MS SQL服务器.当您实例化新的实体context(ObjectContext)时,这是否适用,即无参数new MyDatabaseModelEntities()

  2. a)为应用程序创建全局实体上下文(即一个静态实例)或b)使用using块为每个给定操作/方法创建和公开实体上下文有哪些优点和缺点.

  3. 我应该了解的某些场景的任何其他建议,最佳实践或常用方法?

.net database ado.net entity-framework connection-pooling

264
推荐指数
3
解决办法
11万
查看次数

单元测试DbContext

我研究了一些关于我可以用来对DbContext进行单元测试的技术的信息.我想在上下文中添加一些内存数据,以便我的测试可以针对它运行.我正在使用Database-First方法.

我发现最有用的两篇文章是这个这个.该方法依赖于创建一个MyContext和FakeContext都将实现的IContext接口,允许模拟上下文.

但是,正如某些人所指出 那样,我试图避免使用存储库来抽象EF,因为EF 4.1已经通过DbSet和DbContext实现了存储库和工作单元模式,我真的想保留EF实现的所有功能.团队无需使用通用存储库维护它们,正如我在其他项目中所做的那样(这有点痛苦).

使用IContext会引导我走同一条路(或者不是吗?).

我考虑创建一个继承自主MyContext的FakeContext,从而利用它下面的DbContext来运行我的测试,而不需要访问数据库.我找不到类似的实现,所以我希望有人可以帮助我.

我做错了什么,或者这会导致我遇到一些我没想到的问题?

unit-testing entity-framework-4.1

50
推荐指数
4
解决办法
3万
查看次数

如何创建自定义DbSet

如何创建要在我们的上下文中使用的自定义DbSet,

在这里,我从DbSet中获取了代码示例,如下所示.

在上下文中我有:

public CustomDbSet<Items> MyDbSet { get; set; }
Run Code Online (Sandbox Code Playgroud)

任何时候我们达到" context.MyDbSet"它是null,将其更改为一个简单的DbSet它将工作并且它已正确初始化,

public class CustomDbSet<TEntity> : DbSet<TEntity>, IDbSet<TEntity> where TEntity : Entity, new()
{
    #region Private Fields
    private readonly ObservableCollection<TEntity> _items;
    private readonly IQueryable _query;
    #endregion Private Fields

    public CustomDbSet()
        //: base()
        //: base((IInternalQuery<TEntity>)internalSet)
    {
        _items = new ObservableCollection<TEntity>();
        _query = _items.AsQueryable();
    }
}
Run Code Online (Sandbox Code Playgroud)

它将有更多的属性.

c# entity-framework dbset entity-framework-6

8
推荐指数
0
解决办法
3920
查看次数