我在项目中使用代码优先方法。在prject中,我有具有MetadataType属性的类,我不会在我的EF模型中使用它。具有元数据的类具有一些常量公共字段(除了主类型的字段之外)。现在,当我尝试查询EF时,它抛出了异常,即在元数据类中没有映射字段......下面详细介绍
class M1
{
int Id;
string Name
}
class M2
{
int Id;
DateTime Date
}
[MetadataType(typeof(PageOFSRevenueMetadata))]
class NotRelatedToModel
{
int Prop1;
int Prop2;
}
class PageOFSRevenueMetadata
{
public const string RuleSet1 = "r1";
public const string RuleSet2 = "r2";
// Data Vaidation Attrs...
int Prop1;
int Prop2;
}
在我的上下文中,我只有M1和M2的映射。在DB存在的表中,名称为&NotclatedToModel'但我不想在我的模型中使用它。我使用EF 6
现在,当我尝试在M1和M2上进行连接查询时,它会抛出异常
' NotRelatedToModel'包含以下未知属性或字段:RuleSet1,RuleSet2。请确保这些成员的名称与主类型
上的属性名称相匹配我可以将这些静态字段移动到另一个地方,它似乎可以工作,但我想知道它为什么会发生? EF代码首次映射如何工作?
提前致谢