Entity framework 实体工厂标准对象

Entity framework 实体工厂标准对象,entity-framework,optimization,factory-pattern,Entity Framework,Optimization,Factory Pattern,我找不到有关此问题的现有问题,因此如果是重新提问,则表示抱歉 我正在为mmorpg设计一个实体工厂系统,我想优化标准对象(每个实例都相同的对象,例如魔药)的内存使用,这样大量的对象只包含一个引用,而不是所有相关数据 我假设我有一个引用工厂构造函数的组件,但这是我第一次尝试这种系统,所以我想在我将自己编码到一个洞中之前确定一下。这更像是一个设计问题,而不是实体框架问题。您应该尝试阅读有关factory模式的内容!互联网上有很多好的指南,比如 当您知道模式的作用时,让工厂从数据库返回标准对象或新对象

我找不到有关此问题的现有问题,因此如果是重新提问,则表示抱歉

我正在为mmorpg设计一个实体工厂系统,我想优化标准对象(每个实例都相同的对象,例如魔药)的内存使用,这样大量的对象只包含一个引用,而不是所有相关数据


我假设我有一个引用工厂构造函数的组件,但这是我第一次尝试这种系统,所以我想在我将自己编码到一个洞中之前确定一下。

这更像是一个设计问题,而不是实体框架问题。您应该尝试阅读有关factory模式的内容!互联网上有很多好的指南,比如
当您知道模式的作用时,让工厂从数据库返回标准对象或新对象应该相当容易

举个例子:当你有一个药水工厂时,你会给它一些输入,根据输入,工厂会给你一种药水。这可能是您数据库中的一种药剂(标准药剂!),因此将为您保存一条新记录

比如说

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;
    }
}

我想做的是节省内存。我知道如何获取一个魔药对象,但是如果用户有100个,我希望它们是简单的指针,而不是每个实例都包含魔药的变量。只要您在相同的数据库上下文中工作,每次从数据库检索相同的魔药时,它在内存中都是相同的对象。这里描述:在“身份解析和合并选项”下,对不起,我一定是误解了我所读的内容。我认为EntityDB存储在游戏实例中,这些实例是通过调用相应的工厂创建的。那么EntityDB是用来存储每个游戏对象(药剂、高药剂、最大药剂)的定义,而游戏中的对象存储实体密钥和任何单个数据(生物当前生命值)?