【发布时间】:2009-08-17 08:50:25
【问题描述】:
好的,让我解释一下我正在尝试做的事情。
我有一个名为 WebsitePage 的表,其中包含我网站上的所有页面以及有关它们的一些信息。然后,我为所有客户创建了一个 Customer 表。然后我有另一个名为 CustomerWebsitePage 的表,它存储了 WebsitePage 表中某些列的客户值。
所以,使用实体框架,我导入了这三个表。我想要做的是返回一个强类型的 WebsitePage 列表,如果它有任何值,则该列表具有来自 CustomerWebsitePage 的任何值。例如,假设我的一位客户为我的一个网站页面添加了 CustomerWebsitePageName。在这种情况下,我想返回包含 CustomerWebsitePageName 而不是 WebsitePage Name 的 WebsitePages 列表。但是其他所有内容的原始网站页面名称都没有被覆盖。
这里的关键是我的 WebsitePage 表有一个外键,用于父/子关系。所以,我也想同时返回子网站页面。我尝试使用函数导入来获得我想要的东西,但是我当然丢失了 ChildPages。
我已经尝试了几乎所有方法来使用 Entity 框架和 LINQ 获得我想要的东西。但到目前为止,我尝试的几乎所有事情都以抛出异常告终。以下是一些:
- EntityCollection 已初始化
- 无法在 LINQ to Entities 查询中构造实体或复杂类型“MyEntityModel.WebsitePage”。
我对如何解决所有这些问题有一个想法,那就是将 ParentPageID 复制到我的 WebsitePage 表中,但这似乎违反了很多原则,我真的不想添加与此相关的维护头痛。
有人知道如何完成这种事情吗?
A simple DB diagram. http://images.tehone.com/screenshots/2009-08-17_013009.png
【问题讨论】:
-
看起来您编写了一个错误的 LINQ to Entities 查询,但实际上没有看到该查询和使用它的代码,因此很难确定。乍一看,您的数据库映射看起来还不错。
标签: asp.net-mvc linq entity-framework linq-to-entities