基本上我有一个产品实体
public class Product
{
public int ID {get; set;}
public string Name {get; set;}
}
我想创建:
UnknownProduct : Product
{
public UnknownProduct()
{
ID = -2;
Name = Unknown;
}
}
这里的目标是从业务逻辑轻松创建UnknownProduct。我希望在结果表中有这个:
#Products
ID | Name
1 | Beer // Referenced X times
2 | Soda // Referenced Y times
-1 | UnknownProduct // Referenced Z times, so only one row has been create !
但是我知道,使用前面的代码,每当我创建一个实例时,一个新行将被添加到表中。实际上ID = - 2,我会得到一个Identity Insert expcetion,但如果我删除它,每次都会添加一行。
我做了类似的事情,但主键是string类型,因此我可以使用显式主键为第一个实例设定种子,然后使用相同的主键实例化以下对象,从而避免重复。
这里,由于PK是int类型,这个列被标记为自动生成,这确实是我想要的。但在这个特定的情况下,我希望能够使用UnknownProduct作为参考数据,我可以直接从C#实例化,而不需要在DB中有重复项。知道如何实现这个目标吗?