3

我决定在实体框架中使用流畅的映射。我的意图是通过没有任何属性和自动映射功能的代码映射所有内容。我发现的最好方法是类 EntityTypeConfiguration,我为项目中的每个实体实现了它。

后来我将属性添加到我的一个实体。这个属性不需要被持久化。我已经预料到,在我为这个属性添加映射之前,它会被数据库和持久层忽略。不幸的是,它不是那样工作的,并且属性是映射的。唯一的方法是使用 Ignore 方法或 NotMapped 属性,但我不想明确地这样做。

有什么办法可以阻止实体框架自动映射?我试图从 DbModelBuilder 中删除所有约定,但它没有帮助。

4

2 回答 2

1

据我所知,没有其他方法可以解决它。您需要使用Ignore()[NotMapped]。我倾向于更喜欢前者,因为它不会弄乱模型。

于 2012-11-30T15:17:07.547 回答
0

实际上我已经尝试了很多方法: - 删除映射属性的自定义约定 - 删除所有约定

但最简单(也是最干净)的方法是在映射类中使用反射并禁用所有未配置的属性映射。

该代码(也是一个使用示例)在我的公共要点中。 https://gist.github.com/hidegh/36d92380c720804dee043fde8a863ecb

于 2017-03-07T16:49:56.947 回答