小编Lan*_*eyo的帖子

什么是PartialEvaluationExceptionExpression以及如何解决?

我有一些使用nHibernate的LINQ查询代码,当它执行时,它抛出一个PartialEvaluationExceptionExpression.这究竟是什么意思,我能做些什么呢?

SomeIqueryableNhibernateObject
.Where(x=>...
some expression
&& !Model.date.HasValue ? true : (x.fooDate.Date == Model.date.Value.Date)
&& some expresion
Run Code Online (Sandbox Code Playgroud)

模型是:

public class Filter
{
   DateTime? date;
}
Run Code Online (Sandbox Code Playgroud)

异常是由三元运算符的错误路径引起的:

x.fooDate.Date == Model.date.Value.Date
Run Code Online (Sandbox Code Playgroud)

即使我将其修改为:

x.fooDate != null && Model.date.HasValue && x.fooDate.Date == Model.date.Value.Date
Run Code Online (Sandbox Code Playgroud)

它仍然抛出异常.

c# linq nhibernate

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

ASP.MVC HandleError属性不起作用

我知道这是一个常见的问题,但我已经抓住了许多讨论而没有结果.

我正在尝试使用HandleError ASP.MVC attrbiute来处理错误.我正在使用MVC 4.

我的错误页面位于Views/Shared/Error.cshtml中,看起来像这样:

Test error page
<hgroup class="title">
    <h1 class="error">Error.</h1>
    <h2 class="error">An error occurred while processing your request.</h2>
</hgroup>
Run Code Online (Sandbox Code Playgroud)

App-Start文件夹中的My FilterConfig.cs是:

public class FilterConfig
    {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new HandleErrorAttribute());
        }
    }
Run Code Online (Sandbox Code Playgroud)

我的控制器:

public class TestController : Controller
    {
        [HandleError(View = "Error")]
        public ActionResult Index()
        {
            throw new Exception("oops");
        }
    }
Run Code Online (Sandbox Code Playgroud)

最后我的Web.config in有以下节点:

<customErrors mode="On" defaultRedirect="Error">
</customErrors>
Run Code Online (Sandbox Code Playgroud)

当我调用控制器动作时,我得到一个带有以下文本的白色屏幕:

'/'应用程序中的服务器错误.

运行时错误说明:处理请求时发生异常.此外,执行第一个异常的自定义错误页面时发生另一个异常.请求已终止.

如果未在Web.config中设置defaultRedirect ="Error",则会出现以下文本的黄色屏幕:

'/'应用程序中的服务器错误.

运行时错误说明:服务器上发生应用程序错误.此应用程序的当前自定义错误设置可防止查看应用程序错误的详细信息.

详细信息:要在本地服务器计算机上查看此特定错误消息的详细信息,请在位于当前Web应用程序根目录中的"web.config"配置文件中创建标记.然后,此标记应将其"mode"属性设置为"RemoteOnly".要使详细信息可在远程计算机上查看,请将"mode"设置为"Off".

注意:通过修改应用程序配置标记的"defaultRedirect"属性以指向自定义错误页面URL,可以将自动查看的当前错误页面替换为自定义错误页面.

有人知道什么是错的吗?

编辑:

错误是由使用强类型布局引起的.抛出错误时,MVC的错误处理机制正在创建HandleErrorInfo对象,该对象将传递给Error视图.但是,如果我们使用强类型布局,则类型不匹配.

我的解决方案是使用Global.asax中的Application_Error方法,下面的SBirthare对此进行了完美描述.

.net c# asp.net-mvc asp.net-mvc-4

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

如何在 GraphQL 中执行突变?

在 GraphQL 中,我们基本上有两种类型的操作:查询和突变。虽然文档中对查询进行了很好的描述,并且有很多示例,但我很难理解如何执行突变。突变显然是更新方法。

我创建了非常简单的 Node.js 服务器:

var express = require("express");
var graphqlHTTP = require("express-graphql");
var graphql = require("graphql");
var inMemoryDatabase = require("./inMemoryDatabase").inMemoryDatabase;
var _ = require("lodash-node");

var userType = new graphql.GraphQLObjectType({
  name: "User",
  fields: {
    id: { type: graphql.GraphQLString },
    name: { type: graphql.GraphQLString }
  }
});

var queryType = new graphql.GraphQLObjectType({
  name: "Query",
  fields: {
    user: {
      type: userType,
      args: {
        id: { type: graphql.GraphQLString }
      },
      resolve: function(parent, { id }) {
        return _.find(inMemoryDatabase, { id: id }); …
Run Code Online (Sandbox Code Playgroud)

node.js graphql

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

如何在cursor.ForEach中打印文档?

我在一些集合上将一些简单的游标定义为find().

cursor = db.students.find()
Run Code Online (Sandbox Code Playgroud)

学生有以下架构:

"_id" : 19,
"name" : "Gisela Levin",
"scores" : [
        {
                "type" : "exam",
                "score" : 44.51211101958831
        },
        {
                "type" : "quiz",
                "score" : 0.6578497966368002
        },
        {
                "type" : "homework",
                "score" : 93.36341655949683
        },
        {
                "type" : "homework",
                "score" : 49.43132782777443
        }
]
Run Code Online (Sandbox Code Playgroud)

我想迭代光标并打印文档.我试着这样:

cursor.forEach(function(o){print(o)})
Run Code Online (Sandbox Code Playgroud)

它只打印:

[对象]

如果我修改一个循环来选择一些简单的属性,它可以工作:

cursor.forEach(function(o){print(o._id)})
Run Code Online (Sandbox Code Playgroud)

虽然如果我把它更改为打印分数,它会打印出来:

[object Object],[object Object],[object Object],[object Object]
Run Code Online (Sandbox Code Playgroud)

是否有任何函数在mongodb shell中打印json文档?

mongodb mongo-shell mongodb-query

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

在ng-if内的元素上设置监视

假设我有以下观点:

<div ng-if='some === "something"'>
   <input type="text" ng-model="foo.Bar"/>
</div>
Run Code Online (Sandbox Code Playgroud)

在控制器some中设置:

foo.controller('fooFoo',
   function fooFoo($scope) {
      $scope.some = "something";
      $scope.$watch('foo.Bar',function (nVal, oVal) { etc...});
   }
);
Run Code Online (Sandbox Code Playgroud)

如果输入在div内,ng-ifwatch不起作用.

为什么?我可以以某种方式使它工作?

javascript angularjs

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

在 Visual Studio 中的目录树中移动类后自动更改命名空间

当用户向 Visual Studio 中的项目添加项目(如类或接口)时,IDE 会自动设置默认命名空间。每个程序集都有默认的命名空间,如果项目内有子文件夹,则目录结构会反映在命名空间中。

以下结构

  • 项目
    • 目录1
      • 子目录1
        • 班级

产生以下命名空间:

命名空间 Project.Directory1.Subdirectory1

一开始,一切都很干净,组织得很好。然而后来,有时我们需要将一些班级转移到其他地方。默认情况下,Visual Studio 不会重构其后的命名空间。IDE中有没有可以打开的选项?有没有任何外部工具可以实现?

c# namespaces visual-studio

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

IIS加载哪些ASP.NET Web应用程序的DLL文件?

我找不到任何有关它的信息.有没有人知道IIS是加载Web应用程序的bin目录中的所有dll还是任何目录中的所有dll,或者只是项目引用的目录(在这种情况下它是如何确定哪个dll是"master")?

我刚刚遇到某种情况,有人在部署新版本之前没有从Web应用程序目录中删除所有文件,而某些dll已重命名.这个冗余的dll位于MVC 4 Web应用程序的bin目录中.

.net asp.net iis

4
推荐指数
2
解决办法
6861
查看次数

是否可以混合使用TypeScript和CoffeeScript?

我刚刚开始探索新的JavaScript想法,我印象非常深刻.乍一看,CoffeeScript和TypeScript都有一些很棒的功能.它们都编译为JavaScript.CoffeeScript很棒,因为它使代码更短更清晰.另一方面,TypeScript为我们提供了构建复杂应用程序的可能性.

是否可以混合使用TypeScript和CoffeeScript?我的意思是 - 在同一个文件中利用它们两个?

javascript coffeescript typescript

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

MongoDb解释失败:"未知的顶级操作符:$ query"

我试图从非常简单的查询中获得解释.它使用以下架构的帖子集合:

> db.posts.findOne()
{
        "_id" : ObjectId("55236e6182bf196454a952b6"),
        "Content" : "wuOfCjKborHcxkoyXzXiW",
        "CreatedAtUtc" : ISODate("2014-01-18T23:59:30.023Z"),
        "Tags" : [
                "sjM",
                "Van",
                "Orm"
        ],
        "Title" : "msAQAbQwAl",
        "Author" : "yIIhato",
        "Comments" : [ ]
}
Run Code Online (Sandbox Code Playgroud)

查询我想解释的是:

db.posts.find( { $query: {}, $orderby: { "CreatedAtUtc" : -1 } } )
Run Code Online (Sandbox Code Playgroud)

它产生适当的结果,没有任何错误.但是当我想解释它时,它会抛出异常.我已经尝试过这些命令来解释查询:

db.posts.explain().find( { $query: {}, $orderby: { "CreatedAtUtc" : -1 } } )
db.posts.find( { $query: {}, $orderby: { "CreatedAtUtc" : -1 } } ).explain()

var cursor = db.posts.find( { $query: {}, $orderby: { "CreatedAtUtc" : …
Run Code Online (Sandbox Code Playgroud)

mongodb mongo-shell

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

是否有可能在构造函数中违反Liskov替换原则?

我刚刚安装了Microsoft Code Contracts.它是.NET Framework和Visual Studio插件的一部分.它提供运行时检查和定义合同的静态检查.

该工具有四个警告级别,所以我设置最高.

我已经宣布了违反Liskov替代原则的课程.

public class Person
{
    protected int Age { get; set; }

    public Person(int age)
    {
        Contract.Requires(age > 0);
        Contract.Requires(age < 130);
        this.Age = age;
    }
}

public class Child : Person
{
    public Child(int age) : base(age)
    {
        Contract.Requires(age > 0); 
        Contract.Requires(age < Consts.AgeOfMajority);
        Contract.Requires(age < 130);
        this.Age = age;
    }
}

public static class Consts
{
    public readonly static int AgeOfMajority = 18;
}
Run Code Online (Sandbox Code Playgroud)

LSP声明:

如果S是T的子类型,那么类型T的对象可以用类型S的对象替换而不改变该程序的任何所需属性

在我的例子中,违规将是这个对齐:Person person = new Child(23); …

c# liskov-substitution-principle code-contracts solid-principles

4
推荐指数
2
解决办法
562
查看次数