问题列表 - 第44840页

更好的DateTime?或使用默认值(DateTime)为NULL?

我正在设计一个具有私人消息系统的C#/ NHibernate网站.我希望管理员检查用户是否以及何时阅读了消息,并一起突出显示用户尚未阅读的消息.要实现这两个目标,我找到了两个选择:

选项1

class Message
{
    DateTime? Read;
}
Run Code Online (Sandbox Code Playgroud)

哪里Read==null还没有读过

选项2

class Message
{
    DateTime Read;
}
Run Code Online (Sandbox Code Playgroud)

where Read==default(DateTime)(公关1月1日,0:00:00)表示尚未阅读.

在大学里,我被教会使用该NULL值来处理所有特殊情况,并且使用可空类型似乎是一个不错的选择,因为通过检查是否是未读消息来查找未读消息看起来更容易NULL.

但是,使用可空类型至少涉及代码中的装箱和拆箱,性能会下降.另一方面,查询未读消息意味着比较值(但可以将其编入索引)

我的问题是

你建议的方法是什么?在这种情况下,最佳做法会有什么建议?

c# nhibernate

13
推荐指数
2
解决办法
4364
查看次数

将String转换为SqlDbType

我试图将字符串值转换为SqlDbType.我的代码能够将"Text"转换为SqlDbType.Text而没有任何错误,但是当我尝试将"bit"转换为SqlDbType.Bit时,我收到以下错误:"找不到请求值'bit'."

尝试将"int"转换为SqlDbType.Int时会发生同样的错误消息:"找不到请求的值'int'."

为什么这适用于"文本"而不​​是"位"或"int"?

Dim MyType as String = "bit"
Dim sdtype As SqlDbType

sdtype = DirectCast([Enum].Parse(GetType(SqlDbType), MyType), SqlDbType)
Run Code Online (Sandbox Code Playgroud)

sql vb.net asp.net

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

在实体框架中映射片段的问题

我正在使用实体框架,我遇到了一个奇怪的构建错误.

我正在建立一个论坛,我在数据库中设置了一个"忽略"的表,当人们不喜欢彼此时会忽略某人.该表有两列,它们是主键.

PK InitiatingUser
PK IgnoredUser
Run Code Online (Sandbox Code Playgroud)

当EF映射此表时,我收到此错误:

错误7错误3034:从第1467行,第1477行开始映射片段时出现问题:具有可能不同键的两个实体映射到同一行.确保这两个映射片段将AssociationSet的两端映射到相应的列.

我在xml编辑器中打开了edmx并导航到有问题的行.

          <MappingFragment StoreEntitySet="Ignores">
            <ScalarProperty Name="IgnoredUser" ColumnName="IgnoredUser" />
            <ScalarProperty Name="InitiatingUser" ColumnName="InitiatingUser" />
          </MappingFragment>
Run Code Online (Sandbox Code Playgroud)

我刚刚开始使用EF,我不明白发生了什么或问题可能是什么.

任何帮助表示赞赏.

编辑 忽略之间的关系曾经有外键将启动用户和被忽略的用户映射到用户表的主键(用户名).这就是我第一次将EF映射到此表时的情况.我已经删除了FK,看看是否会有所帮助,但事实并非如此.

entity-relationship entity-framework entity-framework-4 entity-framework-designer

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

通过继承和交叉委派重用代码

假设我在C++中有以下类层次结构:

class AbstractBaseClass
{
public:
    // Note:  Class is completely abstract! No data!
    AbstractBaseClass() {}
    virtual ~AbstractBaseClass() {}
    virtual std::string definedInVirtual() = 0;
    virtual std::string definedInDerived() = 0;
};

class Virtual : public virtual AbstractBaseClass
{
public:
    Virtual() {}
    virtual ~Virtual() {}

    std::string definedInVirtual()
    {
        return "definedInVirtual";
    }
};

class DerivedA : public Virtual
{
public:
    DerivedA() {}
    virtual ~DerivedA() {}

    std::string definedInDerived()
    {
        return "definedInDerivedA";
    }
};

class DerivedB : public Virtual
{
public:
    DerivedB() {}
    virtual ~DerivedB() {} …
Run Code Online (Sandbox Code Playgroud)

c++ code-reuse

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

jquery使用id获取innerWidth()

如何通过使用它的id来获取元素的宽度.

jquery

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

构建谷歌分析域哈希

我正在创建自己的GA库来自己构建跟踪像素的URL,因为我需要在无cookie的环境中使用GA.但我坚持为cookie格式创建域哈希.

在这个cookie中:

__utma=126394024.179004532335319200.1247654493.1260769004.1260878051.7
Run Code Online (Sandbox Code Playgroud)

第一部分126394024显然是"域哈希",虽然许多网站似乎都展示了它的使用方式,但我实际上无法弄清楚如何从域中生成它.这只是由谷歌服务器上的内部流程完成的,这是世界其他地方所不知道的吗?或者有没有办法让我自己散列域名以产生这个令牌?

google-analytics

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

我可以编写什么最简单的程序来调用批处理脚本?

这是非常愚蠢的,Windows不会让你添加批处理文件到你的快速启动或他们在Windows 7中调用的任何东西.栏上的那个栏,我可以在那里附加firefox,命令提示,甚至画画(我最喜欢的),但不是批处理文件.我可以将它"固定"到另一个程序,这很奇怪.我希望它是独立的,批处理文件本身就能完成足够的工作.

所以我要说我有批处理文件.我可以编写什么最简单的可执行程序来调用所述脚本.然后我最终可以将所有有用的批处理文件固定在那个快速跳转针杆上.

windows batch-file windows-7

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

从类路径加载配置文件

我正在努力使我的Java应用程序易于部署到其他计算机,我正在写一个蚂蚁脚本来做到这一点,这很好.

我在加载jar中清单文件中指定的类路径中列出的资源时遇到问题.

文件夹结构如下所示:

/MyProgram.jar
/lib/<dependencies>
/config/configuration.xml
Run Code Online (Sandbox Code Playgroud)

我不能为我的生活使用ClassLoader访问configuration.xml文件.它与所有依赖项一起在清单文件的Class-Path条目中明确列出.

我尝试了以下的许多变种:

this.xml = Thread.currentThread().getContextClassLoader()
                 .getResourceAsStream(xmlName);

this.xml = this.getClass().getResourceAsStream(xmlName);
Run Code Online (Sandbox Code Playgroud)

使用xmlName作为以下所有值的字符串:

"config/configuration.xml"
"configuration.xml"
"config.configuration.xml"
Run Code Online (Sandbox Code Playgroud)

与此相关,我在config目录中也有一个log4j.properties文件.我如何让log4j拿起它?其他引用说它只需要在类路径中,它也在jar的manifest文件中明确命名.有人能指出我正确的方向吗?

更新:

以下是Class-Path中的实际条目:

Class-Path: <snip dependencies> config/configuration.xml config/log4j.properties
Run Code Online (Sandbox Code Playgroud)

java classpath

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

如何在项目中添加"rake test"

当我跑rake -T时,我发现rake test失踪了.我需要做什么才能完成这项任务?具体来说,我想运行,rake test:benchmark但似乎没有加载.例如...

$rake test:benchmark

rake aborted!
Don't know how to build task 'test:benchmark'
Run Code Online (Sandbox Code Playgroud)

rake ruby-on-rails-3

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

如何使用monotouch将联系人添加到iPhone地址簿?

我需要能够在monotouch中访问地址簿,并在我的项目中添加/修改/删除.我该怎么办?

iphone xamarin.ios

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