如何告诉EntityFramework不要弄乱给定的实体?

时间:2012-11-13 19:23:54

标签: entity-framework poco dto

我正在寻找一种方法来表明某个类不会用于生成数据库(代码优先的Web应用程序),也不会被监视更改。换句话说,我只是希望这个特定的类与任何自动持久性行为完全断开(因为它将仅用作View和Controller之间的DTO)。可能吗?

1 个答案:

答案 0 :(得分:2)

Entity Framework使用您用来检测数据库预期结构的DbContext类。

EF将假设某个实体存在于您的数据库中,有两种方式。

  1. 实体由您的DbContext直接引用,EG您有DbSet<TEntity>(或IDbSet<TEntity>
  2. 该实体是从您的DbContext中间接引用的,您有一个如上所述的实体,该实体将您的实体作为财产。
  3. 当引用实体时,它将期望具有该实体模式的表将存在于数据库中。您可以通过使用属性修饰实体或使用模型构建器来解决实际预期模式的外观(名称,忽略的属性,必需/不需要等)。我个人的偏好是使用模型构建器,请查看我的文章here,以获取使用模型构建器导航属性的示例。