小编Dam*_*amb的帖子

ASP.NET MVC3和Entity Framework Code第一个架构

我之前的问题让我再次思考层,存储库,依赖注入和这样的架构.

我的架构现在看起来像这样:
我首先使用EF代码,所以我只创建了POCO类和上下文.这创建了db和model.
级别更高的是业务层类(提供者).我为每个域使用不同的提供程序...比如MemberProvider,RoleProvider,TaskProvider等.我在每个提供程序中创建我的DbContext的新实例.
然后我在我的控制器中实例化这些提供程序,获取数据并将它们发送到Views.

我的初始架构包括存储库,我之所以摆脱它是因为我被告知它只会增加复杂性,所以为什么我不仅仅使用EF.我想这样做..直接从控制器使用EF,但我必须编写测试,它与真正的数据库有点复杂.我不得不假装 - 以某种方式模拟数据.因此,我为每个提供商创建了一个接口,并使列表中的硬编码数据成为假提供者.有了这个,我回到了一些东西,我不知道如何正确地进行.

这些事情开始过于复杂化......许多方法和"模式"......它产生了太多的噪音和无用的代码.

是否有任何SIMPLE和可测试的体系结构用于使用Entity Framework创建和ASP.NET MVC3应用程序?

architecture asp.net-mvc unit-testing entity-framework code-first

53
推荐指数
2
解决办法
2万
查看次数

将EF 4.1代码优先的ASP.NET MVC3部署到中等信任共享主机

我认为,这是现在非常普遍的情况,所以令人惊讶的是,我很难找到适合它的好的和干净的解决方案(即使在这里也是如此).

我有我的ASP.NET MVC3 Web应用程序使用Entity Framework 4.1与代码优先方法(使用DatabaseInitializer种子默认数据).我还尝试了两个数据库选项:SQL Express 2008 R2和SQL Compact 4.一切都在本地工作正常.

现在我想托管我的应用程序,所以我发现托管(中间一个称为'最佳'),最后(在一些问题之后)进入状态,我得到中等信任错误(我相信).

应用程序尝试执行安全策略不允许的操作.要授予此应用程序所需的权限,请与您的系统管理员联系或在配置文件中更改应用程序的信任级别.

让我们假设我不能以任何方式配置托管,我不认为,他们会把我转变为完全信任.

我该怎么办,让我的应用程序在中等信任托管上工作?

编辑:我找到了一些通常在本地开发中传播设置媒体信任的答案,就这样做,所以我的问题现在可能是这样的:

什么是"前5个原因"为什么您的ASP.NET MVC3 EF 4.1应用程序无法在中等信任下工作?

编辑:我已经为此添加了赏金,因为我希望看到一些讨论......或者至少更多的oppinions/experience,其中包含的不仅仅是"在本地开发中设置中等信任".也许这里没有什么可讨论的,但我只是好奇,因为我已经花了更多的时间在这上面,而不是我想要的.

deployment iis asp.net-mvc entity-framework

14
推荐指数
1
解决办法
1679
查看次数

我为什么要购买ReSharper或CodeRush?

我试图在这里找到类似的问题,但似乎你们只比较这些工具,每个人都知道它为什么这么棒:)

嗯..我没有.我知道,这些工具"非常酷,并且会在一分钟内将我变成一个超级编码器".但我想知道为什么

它们中有什么特别之处,它们是如此昂贵(对于一个插件)?
日常使用中的一些真实例子会很好.

我所看到的是一个插件,它与使用visual studio可以实现的大致相同,但具有不同的快捷方式.

c# resharper coderush visual-studio

7
推荐指数
2
解决办法
5147
查看次数

EF Code第一个相关实体上下文失败

Dunno如何恰当地命名.我在m:n关系中有两个实体:成员和角色.

public class Role
{
    public int Id { get; set; }
    public string Title { get; set; }

    public ICollection<Member> MembersInRole { get; set; }
}

public class Member
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Password { get; set; }
    public string Email { get; set; }

    public ICollection<Role> Roles { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我已经制作了一些种子数据:http :
//i56.tinypic.com/2vjvj1w.png

并写了测试:http :
//i54.tinypic.com/112916b.png

问题是,我的会员实体没有分配角色,即使我在上下文中创建它们(如图所示).我不知道出了什么问题.数据库中的表似乎没问题.我不确定上下文实例是否有问题.但它应该没问题,因为我一直在处理种子数据.

entity-relationship many-to-many entity-framework ef-code-first entity-framework-4.1

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

使用实体方法的结果进行lambda表达式或linq查询过滤

我想根据使用其属性的函数的结果来过滤我的entites.

即.我有这样的实体:

public class Lorem
{
    public int A {get;set;}
    public int B {get;set;}
    public int C {get;set;}

    public double DoMath(int externalValue)
    {
        // real implementation is longer and more complex

        if(A==B) {
          // some calculations
          return 0.2;
        }
        if(B==C) {
          // some calculations
          return 0.9;
        }
        else return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我正在查询实体,我想只获得DoMath> 0的那些实体.

// simplified scenario for example purpose
int someValue = 95;
// working with Entity Framework 4.1 Code First
var filtered = db.Lorems.Where(x=>x.DoMath(someValue) > 0);
Run Code Online (Sandbox Code Playgroud)

我收到此错误:
LINQ …

c# lambda linq-to-entities entity-framework

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

在d3.js中获取拖动元素的ID

我可能在某种程度上损害了大脑的atm,因为这样的事情应该是微不足道的

我有一堆手动绘制的svg圆(通过React)。然后,我将d3拖动行为附加到所有它们。应用了拖动行为并执行了拖动功能,但是当我拖动这些圆圈之一时,我无法做出相应的响应,因为我不知道哪个圆圈被移动了。在哪里可以获取被拖动元素的ID

我检查了其他几个问题,然后发现了一些疯狂的过滤器解决方案……不可能。

我也偷看了文档并找到了该subject属性。但是,在我尝试过的所有地方都为null。

我的代码:

  componentWillUpdate() {
    let nodes = d3.selectAll("circle");

    const dragFn = (d,i) => {
      d3.event.sourceEvent.stopPropagation();
      this.props.onNodeDrag(I_NEED_AN_ID_HERE);
    }

    const dragBehavior = d3.behavior.drag();
    dragBehavior.on('drag', dragFn);
    dragBehavior.on('dragstart', () => {
      d3.event.sourceEvent.stopPropagation();
    });

    nodes.call(dragBehavior);
  }
Run Code Online (Sandbox Code Playgroud)

d3.js reactjs

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