我有很多类,其中一些是模型类,有些则不是。我试图只使用EF6来获取使用数据库的模型类。克服了我不能同时拥有ModelNamespace1.ClassA
和ModelNamespace2.ClassB
的轻微不便(我在{{1}上使用Fluent API&#39; Ignore<>()
方法克服了这个问题我现在面临的问题是不应该成为模型类一部分的类被认为是这样的。
因此,在ModelBuilder
中的自定义代码完成执行后,我得到许多类的异常,这些类甚至不是我的模型的一部分(概念上):
OnModelCreating()
为什么会发生这种情况,我做错了什么?有没有办法限制EF只考虑命名空间列表中的类(例如System.Data.Entity.ModelConfiguration.ModelValidationException: One or more validation errors were detected during model generation:
Translation.Tester.RuleResult: : EntityType 'RuleResult' has no key defined. Define the key for this EntityType.
,ModelNamespace1.*
但不是ModelNamespace2.*
)?
我的猜测是,它正在查看从我的模型类程序集中引用的每个类,并考虑到映射。
稍后编辑:
咨询EF code似乎在调用NonModelNamespace.*
之后,当实际映射类型时,会在内部创建OnModelCreating()
类的实例,其构造函数如下所示:
TypeMapper
此代码导致从定义模型类的程序集中加载所有可访问类型。这导致具有不属于模型的已知类型。