我找不到一个现有的问题,很抱歉,如果这是一个重新询问。
我正在为mmorpg设计一个实体工厂系统,我想优化标准对象(每个实例都相同的对象,例如potion)的内存使用,这样一个对象的大量只保留一个引用而不是所有相关数据。
我假设我只有一个引用工厂构造函数的组件,但这是我在这种系统中的第一次尝试,所以我想在将自己编码到一个洞之前确保。
答案 0 :(得分:0)
这更像是设计问题,而不是实体框架问题。您应该尝试了解工厂模式的作用!互联网上有很多好的指南,比如http://msdn.microsoft.com/en-us/library/ee817667.aspx
当您知道模式的作用时,让您的工厂返回数据库中的标准对象或新的标准对象应该相当容易。
考虑一下:当你有药水工厂时,你会给它一些输入,根据那个输入,工厂会给你一种药水。这可能是您数据库中的药水(标准药水!),因此可以为您保存新记录。
例如
public IPotion GetPotion(PotionType potion, EFContext context)
{
switch (potion)
{
case PotionType.Health:
// return standard health potion from the context
break;
case PotionType.Custom:
// return a new instance of some sort of customizable IPotion, added to the context
break;
}
}