小编hyd*_*dic的帖子

LINQ to Entities和null字符串

我使用EF 4.0作为其数据库后端在ASP.NET 4.0 Web应用程序上发生了一件非常奇怪的事情.从本质上讲,我有一个存储用户的密码重置请求(包含类型的复位键的表中byte[],类型的到期DateTime,以及一个外键,一个User包含string Emailstring Name).有些用户没有设置电子邮件地址,所以对于a PasswordRequest request,request.Emailnull.

这是问题所在.这非常好用:

string u = Request["u"];
string e = Request["e"];

var requests = from r in context.PasswordRequests
               where r.User.Name == u && r.User.Email == null && r.Expiry >= DateTime.Now
               select r;
Run Code Online (Sandbox Code Playgroud)

我得到预期的结果数量(非零,因为有null电子邮件条目).

但是,当这个总是返回一个空集enull:

string u = Request["u"];
string e = Request["e"];

var requests = from r in context.PasswordRequests
               where r.User.Name == u …
Run Code Online (Sandbox Code Playgroud)

c# sql-server asp.net linq-to-entities entity-framework

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

使用带有boost :: asio :: ip :: tcp :: iostream的fork()是否安全?

我正在尝试守护一个简单的TCP客户端,虽然客户端在前台工作得很好,但守护它会导致奇怪的行为.

作为一个测试案例,我有一台服务器,一旦你连接并发送一条消息("已连接"),它将向你发送每秒连接一次的秒数.

如果我守护进程(通过调用Test::Connect(true)),即使在成功接收到一些数字之后,连接也会在任意时间后下降.

如果我没有守护进程(通过调用Test::Connect(false)),连接保持活动状态,我会继续按预期接收数字.

#include <string>
#include <iostream>
#include <boost/asio.hpp>
#include <unistd.h>
class Test
{
  public:
    Test()
    {
      io = nullptr;
    }
    void Connect(bool daemonize)
    {
      io = new boost::asio::ip::tcp::iostream("localhost", "6500");
      if ( io && *io )
      {
        *io << "connected" << std::endl;

        if ( daemonize )
        {
          pid_t child = fork();
          if ( child < 0 ) exit(EXIT_FAILURE);
          else if ( child > 0 ) exit(EXIT_SUCCESS);

          umask(0);
          if ( setsid() < 0 ) exit(EXIT_FAILURE);
          if …
Run Code Online (Sandbox Code Playgroud)

c++ posix fork boost-asio c++11

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

C#0-1背包问题已知总和和集合中的零数

我有一个5x5的值,从0到3,包括所有值未知.我知道每个行和列的值的总和和零的数量.我将如何使用C#解决这个0-1背包问题,并检索满足已知总和和零数的可能解决方案?表格总是五行五列,所以它不是一个传统的背包.

例如,假设我们输入:

Row[0]: Sum=4, Zeros=1
   [1]: Sum=5, Zeros=1
   [2]: Sum=4, Zeros=2
   [3]: Sum=8, Zeros=0
   [4]: Sum=3, Zeros=2

Col[0]: Sum=5, Zeros=1
   [1]: Sum=3, Zeros=2
   [2]: Sum=4, Zeros=2
   [3]: Sum=5, Zeros=1
   [4]: Sum=7, Zeros=0
Run Code Online (Sandbox Code Playgroud)

我们会将此作为一种可能的解决方案:

[[ 0 1 1 1 1 ]
 [ 1 0 2 1 1 ]
 [ 2 1 0 0 1 ]
 [ 1 1 1 2 3 ]
 [ 1 0 0 1 1 ]]
Run Code Online (Sandbox Code Playgroud)

在这种相当奇怪的情况下,我应该采用什么类型的算法?我是否还必须编写一个类来枚举排列?

编辑澄清:问题不在于我无法列举可能性; 我不知道如何在包含指定数量的零和最多5个项目的同时有效地确定添加到任意总和的排列.

c# algorithm knapsack-problem

5
推荐指数
0
解决办法
1807
查看次数