问题列表 - 第6203页

映射到Nhibernate中的Enum位标志

采取以下枚举标志

[Flags]
enum Permssions
{
   CanComment = 1,
   CanEdit = 2,
   CanDelete = 4,
   CanRemoveUsers = 8,
   All = CanComment | CanEdit | CanDelete | CanRemoveUsers 
}
Run Code Online (Sandbox Code Playgroud)

在NHibernate中,我在使用之前映射到枚举:

<property type="n.Permssions, n.Permssions"
name="Permssions" column="Permssions"></property>
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何使用NHibnerate将按位字段映射到Flag字段?

c# nhibernate

15
推荐指数
2
解决办法
4586
查看次数

Sqlite3在iPhone上出现"没有这样的表"错误

我创建了一个sqlite3数据库,创建了表并插入了一些数据.我可以使用终端应用程序使用select查询检索.

但是当我将这个数据库添加到我的iPhone应用程序资源并尝试以编程方式访问数据时,我得到错误,因为"没有这样的表:表名"

为什么会这样?

sqlite iphone

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

有关域对象的存储库及其Save方法的问题

关于DDD,Repository Patterns和ORM,我有一个有点荒谬的问题.在这个例子中,我有3个类:Address,CompanyPerson.人是公司的成员并拥有地址.公司也有一个地址.

这些类反映了数据库模型.我删除了我的模型的任何依赖项,因此它们不依赖于特定的ORM库,如NHibernate或LinqToSql.这些依赖项在存储库中处理.

在其中一个存储库中有一个SavePerson(Person person)方法,它根据数据库中是否已存在来插入/更新 Person.

由于Person对象有公司,因此我在进行SavePerson调用时也会保存/更新Company属性的值.我在此过程中插入/更新公司的所有数据 - 名称和地址.

但是,我真的很难想到公司的数据在与人交往时可以改变的情况 - 我只希望能够将公司分配给一个人,或者将一个人转移到另一个公司.我认为我不想和新人一起创建新公司.因此SaveCompany调用会引入不必要的数据库调用.保存人员时,我应该能够更新CompanyId列.

但由于Person类具有Company属性,因此我有点倾向于使用它更新/插入它.从严格/纯粹的角度来看,SavePerson方法应该保存整个Person.

首选方式是什么?只需在保存人员或保存其所有数据时插入/更新公司财产的CompanyId?或者你会为两种场景创建两种不同的方法(你会给它们命名什么?)

另外,另一个问题是,我目前有不同的方法来保存人员,地址和公司,因此当我保存公司时,我也称为SaveAddress.假设我使用LinqToSql - 这意味着我不会在同一个Linq查询中插入/更新公司和地址.我猜有2个Select Calls(检查公司是否存在,检查地址是否存在).然后两个插入/更新调用.如果引入更多复合模型类,甚至更多.LinqToSql有没有办法优化这些调用?

public class Address
{
    public int AddressId { get; set; }
    public string AddressLine1 { get; set; }
    public string AddressLine2 { get; set; }
    public string City { get; set; }
    public string PostalCode { get; set; }        
}

public class Company
{
    public int CompanyId { get; set; } …
Run Code Online (Sandbox Code Playgroud)

nhibernate orm domain-driven-design ddd-repositories linq-to-sql

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

可以使用模板按名称访问struct变量吗?

我们假设我有一个这样的结构:

struct my_struct
{
  int a;
  int b; 
}
Run Code Online (Sandbox Code Playgroud)

我有一个函数应该为"a"或"b"设置一个新值.此函数还需要指定要设置的变量.一个典型的例子是这样的:

void f(int which, my_struct* s, int new_value)
{
  if(which == 0)
     s->a = new_value;
  else
     s->b = new_value; 
}
Run Code Online (Sandbox Code Playgroud)

由于我不会在这里写的原因,我无法将指针传递给a/b到f.所以我不能用my_struct :: a或my_struct :: b的地址调用f.我不能做的另一件事是在my_struct中声明一个向量(int vars [2])并将一个整数作为索引传递给f.基本上在f中我需要按名称访问变量.

以前的例子的问题是,在将来我计划向struct添加更多变量,在这种情况下,我将记得向f添加更多if语句,这对于可移植性是不利的.我能做的就是将f写为宏,如下所示:

#define FUNC(which)
void f(my_struct* s, int new_value) \
{ \
        s->which = new_value; \
} 
Run Code Online (Sandbox Code Playgroud)

然后我可以调用FUNC(a)或FUNC(b).

这可行,但我不喜欢使用宏.所以我的问题是:有没有办法使用模板而不是宏来实现相同的目标?

编辑:我将尝试解释为什么我不能使用指针,我需要按名称访问变量.基本上,结构包含系统的状态.该系统需要在请求时"撤消"其状态.使用名为undo_token的接口处理撤消,如下所示:

class undo_token
{
public:
   void undo(my_struct* s) = 0;
};
Run Code Online (Sandbox Code Playgroud)

因此,由于多态性,我无法将指针传递给undo方法(mystruct也包含其他类型的变量).

当我向结构中添加一个新变量时,我通常还会添加一个新类,如下所示:

class undo_a : public undo_token
{
  int new_value;
public:
  undo_a(int new_value) { …
Run Code Online (Sandbox Code Playgroud)

c++ templates

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

67
推荐指数
9
解决办法
9万
查看次数

单位范围的清除/标准名称[0-> 1]

我正在写一个Range类,我正在为公共范围[0-> 1]寻找一个好名字.如果它是长度为1的向量,我将其称为单位向量.是否有明确的名称来给出这个范围/间隔?可能是一个单位范围

math naming range

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

导入父类的所有变量

您可能已经注意到gcc的更高版本对标准更严格(请参阅此问题)

应使用全名调用模板类的所有继承成员,即. ParentClass<T>::member而不仅仅是member

但是我仍然有许多不尊重这一点的旧代码.using ParentClass<T>::member为每个类中的每个使用成员添加是非常痛苦的.有办法做点什么using ParentClass<T>::*吗?我希望这比在g ++中停用此检查更好,但如果现在有办法,我该如何停用它?

编辑:

根据C++ FAQ(谢谢......)这些是正确解决继承成员变量名称的唯一方法:

  1. 将呼叫从更改f()this->f().由于这总是隐式依赖于模板,因此this->f是依赖的,因此查询将被推迟,直到模板实际被实例化为止,此时将考虑所有基类.

  2. 插入using B<T>::f; 就在打电话之前f().

  3. 将呼叫从f()更改为B<T>::f().

所以现在寻找正确的开关来停用全名解析......

c++ gcc templates scope

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

Silverlight的任何缺点?

我们计划使用Silverlight 2.0开发基于Web的应用程序.该应用程序将由我们公司的员工使用.将使用IE6访问该应用程序(是的IE6)并且未安装Silverlight.

我们将通过对所有用户的IT支持来推动我们的Silverlight.所有员工都使用Windows.

在使用Silverlight开发此应用程序之前,是否还有其他问题需要考虑.

有什么缺点吗?IE6中会出现任何性能问题吗?我应该升级到IE7/IE8吗?

这个应用程序将被打开10个电子表格和应用程序的企业使用.512MB是员工PC的标准内存.在IE6中使用Silverlight会很重吗?它会导致系统挂起吗?

我还应该考虑其他任何一点吗?

编辑:马克的第一个回答之后.是否有任何"压力测试"应用程序可用于检查我们的用户PC构建?提前致谢.

silverlight-2.0

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

在FoxPro中限制

我试图从狐狸专业数据库中提取大量数据,使用它并将其插入到mysql数据库中.一次做所有事情实在太多了,所以想要分批说出10 000条记录.与Fox Pro SQL中的LIMIT 5,10相同的是,想要一个select语句

选择姓名,地址从人数限制5,10;

也就是说,从第5位开始只能获得10个结果.在网上看了看,他们只提到顶部,这显然没什么用处.

sql foxpro limit

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

如何使用java获取图像的高度和宽度?

除了使用ImageIO.read获取图像高度和宽度之外还有其他方法吗?

因为我遇到了锁定线程的问题.

at com.sun.medialib.codec.jpeg.Decoder.njpeg_decode(Native Method)      
at com.sun.medialib.codec.jpeg.Decoder.decode(Decoder.java:87)      
at com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageReader.decode(CLibJPEGImageReader.java:73)     
 - locked <0xd96fb668> (a com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageReader)      
at com.sun.media.imageioimpl.plugins.clib.CLibImageReader.getImage(CLibImageReader.java:320)    
 - locked <0xd96fb668> (a com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageReader)     
 at com.sun.media.imageioimpl.plugins.clib.CLibImageReader.read(CLibImageReader.java:384)   
 - locked <0xd96fb668> (a com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageReader)      
at javax.imageio.ImageIO.read(ImageIO.java:1400)      
at javax.imageio.ImageIO.read(ImageIO.java:1322)
Run Code Online (Sandbox Code Playgroud)

此错误仅发生在Sun应用服务器上,因此我怀疑它是Sun错误.

java javax.imageio

98
推荐指数
8
解决办法
18万
查看次数