采取以下枚举标志
[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字段?
我创建了一个sqlite3数据库,创建了表并插入了一些数据.我可以使用终端应用程序使用select查询检索.
但是当我将这个数据库添加到我的iPhone应用程序资源并尝试以编程方式访问数据时,我得到错误,因为"没有这样的表:表名"
为什么会这样?
关于DDD,Repository Patterns和ORM,我有一个有点荒谬的问题.在这个例子中,我有3个类:Address,Company和Person.人是公司的成员并拥有地址.公司也有一个地址.
这些类反映了数据库模型.我删除了我的模型的任何依赖项,因此它们不依赖于特定的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
我们假设我有一个这样的结构:
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) 我正在写一个Range类,我正在为公共范围[0-> 1]寻找一个好名字.如果它是长度为1的向量,我将其称为单位向量.是否有明确的名称来给出这个范围/间隔?可能是一个单位范围?
您可能已经注意到gcc的更高版本对标准更严格(请参阅此问题)
应使用全名调用模板类的所有继承成员,即.
ParentClass<T>::member而不仅仅是member
但是我仍然有许多不尊重这一点的旧代码.using ParentClass<T>::member为每个类中的每个使用成员添加是非常痛苦的.有办法做点什么using ParentClass<T>::*吗?我希望这比在g ++中停用此检查更好,但如果现在有办法,我该如何停用它?
编辑:
根据C++ FAQ(谢谢......)这些是正确解决继承成员变量名称的唯一方法:
将呼叫从更改f()为this->f().由于这总是隐式依赖于模板,因此this->f是依赖的,因此查询将被推迟,直到模板实际被实例化为止,此时将考虑所有基类.
插入using B<T>::f; 就在打电话之前f().
将呼叫从f()更改为B<T>::f().
所以现在寻找正确的开关来停用全名解析......
我们计划使用Silverlight 2.0开发基于Web的应用程序.该应用程序将由我们公司的员工使用.将使用IE6访问该应用程序(是的IE6)并且未安装Silverlight.
我们将通过对所有用户的IT支持来推动我们的Silverlight.所有员工都使用Windows.
在使用Silverlight开发此应用程序之前,是否还有其他问题需要考虑.
有什么缺点吗?IE6中会出现任何性能问题吗?我应该升级到IE7/IE8吗?
这个应用程序将被打开10个电子表格和应用程序的企业使用.512MB是员工PC的标准内存.在IE6中使用Silverlight会很重吗?它会导致系统挂起吗?
我还应该考虑其他任何一点吗?
编辑:马克的第一个回答之后.是否有任何"压力测试"应用程序可用于检查我们的用户PC构建?提前致谢.
我试图从狐狸专业数据库中提取大量数据,使用它并将其插入到mysql数据库中.一次做所有事情实在太多了,所以想要分批说出10 000条记录.与Fox Pro SQL中的LIMIT 5,10相同的是,想要一个select语句
选择姓名,地址从人数限制5,10;
也就是说,从第5位开始只能获得10个结果.在网上看了看,他们只提到顶部,这显然没什么用处.
除了使用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错误.