EF6 - 具有导航属性但没有FK的实体

时间:2015-03-04 22:01:32

标签: sql-server entity-framework foreign-key-relationship check-constraints

如何使用导航属性创建一个实体,而不创建外键。

例如:

  

class EntityType {Id,Code,Description}

     

类实体{Id,Name,Age, EntityType ,EntityTypeId}

     

class EntityHistory {Id,EntityId,Name,Age, EntityType ,EntityTypeId}

在我的Entity类中,我想要正常的导航属性和外键。 但是在EntityHistory中,我想要导航属性,我想拥有EntityTypeId,但我不想在EntityHistory和EntityType之间创建数据库中的关系。

在我的模型中,EntityHistory是来自Entity的审计表,它只通过Entity Trigger编写,在这种情况下,在数据库中创建关系没有多大意义(例如,它减慢太多百万条记录的批量插入) 但我想要导航属性,因为我想将信息检索到用户界面。

所以我的最终目标只是阻止SQL Server检查外键中的约束。

THKS

1 个答案:

答案 0 :(得分:0)

您必须在配置中创建关系的两端,如下所示:

1 =>许多:

HasRequired(charac => charac.Movie)
    .WithMany(movie => movie.Characters);

许多=→1:

HasMany(movie => movie.Characters)
    .WithRequired(character => character.Movie);

深度信息here