Tag: table per hierarchy

entity framework4每个层次结构表 – 如何定义儿童的导航属性?

我目前使用Table Per Type(TPT)实现了Entity Framework 4.0模型,但是存在一些性能问题(许多LOJ / CASE语句),以及两个特定域区域之间的问题映射(多个到 – 许多)。 我决定尝试TPH。 我有一个名为“ Location ”的实体,它是抽象的 ,是所有其他实体的基础。 然后我有“ 国家 ”,“ 城市 ”,“ 州 ”,“ 街道 ”等,这些都来自位置。 “ LocationType ”是判别者 。 该部分工作正常,但我在尝试为派生类型定义导航属性时遇到问题。 例如,“ 州 ”有一个“ 国家 ”,所以我应该能够这样做: var state = _ctx.Locations.OfType().Include(“Country”).First(); var countryForState = state.Country; 但这需要在“州”派生实体上称为“国家”的导航属性。 我该怎么做呢? 当我从数据库生成模型时,我有一个表,所有FK指向同一个表中的记录: (注意:我在DB中手动创建了这些FK)。 但是FK被定位为“ 位置 ”实体上的导航,那么如何将这些导航属性下移到派生实体? 我不能复制+粘贴导航,我不能“创建新的导航属性”,因为它不会让我定义开始/结束角色。 我们如何做到这一点? 如果我们可以先建立模型,或者我们必须从数据库开始,修复模型然后重新生成数据库,那么TPH也不清楚。 我还没有在互联网上找到一个关于如何使用TPH定义儿童导航的好例子。 注意: 我不想先执行代码 。 […]

entity frameworkFluent API不考虑基类属性

EF 6.1: 我们刚刚开始了一个有很多pfinheritance的项目。 选定的inheritancedb映射类型是每个层次结构的表。 问题是,在尝试使用add-migration生成迁移时,会引发以下错误: The foreign key component ‘VersionId’ is not a declared property on type ‘SER’. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property. 以下是使用的类和配置类: public class Version : BaseObject { public virtual ICollection ListOfSER { get; set; } } public abstract […]