如何禁用Entity Framework中的属性自动化

时间:2012-11-28 14:38:36

标签: entity-framework entity-framework-5 entity-framework-mapping

我决定在Entity Framework中使用流畅的映射。我的目的是通过代码映射每个代码而不使用任何属性和自动映射函数。我发现的最好方法是类EntityTypeConfiguration,我为项目中的每个实体实现。

稍后我将属性添加到我的某个实体中。不需要保留此属性。我曾预料到,在我为此属性添加映射之前,它将被数据库和持久层忽略。不幸的是,它不起作用,并且属性被映射。唯一的方法是使用Ignore方法或NotMapped属性,但我不想明确地这样做。

有没有办法阻止Entity Framework自动化?我试图从DbModelBuilder中删除所有约定,但它没有帮助。

2 个答案:

答案 0 :(得分:1)

据我所知,除此之外别无他法。您需要使用Ignore()[NotMapped]。我倾向于选择前者,因为它不会使模型混乱。

答案 1 :(得分:0)

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

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

该代码(以及用法示例)在我的公开要点中。 https://gist.github.com/hidegh/36d92380c720804dee043fde8a863ecb