2012-04-23 40 views
0

我用EF4代码首创,填补树,以允许用户他们的报告整理到文件夹中。 ,因为它是一个现有的数据库上BUIT我的模型是不是很简单。 我有1个数据库表映射到2个类中的模型(表每层次),其从另一个继承:继承的类组织 EF4:不坚持元素

  • :Organization_Report
  • 继承类:Organization_Folder
    • 基类

      一个文件夹中有一个Children属性是组织实例的集合。 在组织类,我有一个NumParent部件和导航属性:家长指向父文件夹。

      顶级元素具有NumParent = NULL。

      我想没有一个家长(NumParent = NULL)报告被细分电子邮件到一个“虚拟”(即不持久。)文件夹:“没有组织的元素”。

      换句话说,查询数据库时,我必须创建“未组织的元素”文件夹,并为每个NumParent = Nothing的报告设置Parent。 当保存到数据库中,我想这个文件夹不添加。

      那是可能的EF?

    +1

    应该回答得含糊不清的问题。目前尚不清楚您的数据模型是什么以及您想要做什么。 – 2012-04-23 08:47:18

    +0

    是的,你说得对。我会尝试更精确 – boblemar 2012-04-23 09:14:15

    回答

    1

    这是不相关的EF - 它是你的应用程序逻辑。 EF只是加载或保存数据的工具。如果你需要额外的东西,你将不得不自己实现。在这种情况下,您可能需要实现处理程序ObjectContext.ObjectMaterialized以将虚拟文件夹分配给已加载的实体并覆盖ObjectContext.SaveChanges或实现ObjectContext.SavingChanges的处理程序以在保留更改之前删除该虚拟文件夹 - 这将非常棘手,因为您必须修复对象树并使确保没有对您的虚拟文件夹的引用,否则它将被保留。这也意味着,在您更改数据后,您的数据将不会包含该特殊文件夹。

    如果您使用DbContext API,仍然可以将您的上下文转换为ObjectContext并分配处理程序。

    +0

    谢谢。我认为这将非常棘手。 – boblemar 2012-04-23 10:45:47