相关疑难解决方法(0)

业务逻辑中的实体框架最佳实践?

我是第一次使用实体框架,并想知道我是否在最佳实践中使用.

我在业务逻辑中创建了一个单独的类来处理实体上下文.我遇到的问题是,在我看到的所有视频中,他们通常将上下文包装在using语句中以确保其关闭,但显然我不能在我的业务逻辑中执行此操作,因为上下文将在我实际关闭之前关闭用它?

所以我正在做什么呢?几个例子:

    public IEnumerable<Article> GetLatestArticles(bool Authorised) 
    {
        var ctx = new ArticleNetEntities();
        return ctx.Articles.Where(x => x.IsApproved == Authorised).OrderBy(x => x.ArticleDate);
    }

    public IEnumerable<Article> GetArticlesByMember(int MemberId, bool Authorised)
    {
        var ctx = new ArticleNetEntities();
        return ctx.Articles.Where(x => x.MemberID == MemberId && x.IsApproved == Authorised).OrderBy(x => x.ArticleDate);
    }
Run Code Online (Sandbox Code Playgroud)

我只是想确保当很多人使用它时,我不会构建一些会死的东西?

c# linq asp.net entity-framework

31
推荐指数
1
解决办法
3万
查看次数

MVVM +服务+实体框架和依赖注入与服务定位器

我有很多系统使用WPF和MVVM.对于单元测试,我们将依赖项注入View模型,但是我发现在构造时注入依赖类时,我们无法控制依赖对象的生命周期,例如Entity Framework DbContext.

一个简单的场景如下:

public class FooVM
{
    private readonly IBarService _barService;

    // Set in the UI via Databinding
    public string Name { get; set; }
    public string OtherName { get; set; }

    public FooVM(IBarService barService)
    {
        _barService = barService;
    }

    public void SaveFoo()
    {
        _barService.SaveFoo(Name);
    }

    public void SaveBar()
    {
        _barService.SaveBar(OtherName);
    }
}

public class BarService : IBarService
{
    private readonly IEntityContext _entityContext;

    public BarService(IEntityContext entityContext)
    {
        _entityContext = entityContext;
    }

    public void SaveFoo(string name)
    {
        // some EF …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework dependency-injection mvvm service-locator

3
推荐指数
1
解决办法
1083
查看次数