我对 Nhibernate 还是很陌生,我对 ID 列有疑问。
让我们考虑下类客户:
class customer
{
public virtual long ID;
public virtual string Name;
public customer()
{
}
public customer(string name)
{
Name = name;
}
}
在我定义的映射文件中,正在生成 ID 列。所以我想创建一个新客户:
customer c = new customer("Max Mustermann");
现在一切都好。生成 ID,Max 可以保存到数据库中。但也有可能产生这样的客户:
customer c = new customer() { ID = 3, Name= "Max Mustermann"};
这应该是不可能的,因为我真的不知道客户的 DB-ID(只有他的名字)。此外,我真的不需要我的程序中的 ID,所以我不高兴在我的对象中有 ID。
在我看来,这是 Nhibernate 中一个糟糕的类设计......有没有办法避免这种情况?
谢谢
编辑1:
你是这个意思吗?
class customer
{
protected virtual long _ID;
public virtual string Name;
public virtual long GetID
{
get { return _ID; }
}
public customer()
{
}
public customer(string name)
{
Name = name;
}
}
那行得通吗?映射文件的外观如何?