Entity framework 实体框架代码优先和数据注释

Entity framework 实体框架代码优先和数据注释,entity-framework,Entity Framework,我在项目中使用代码优先的方法。在项目中,我有一些带有MetadataType属性的类,我在EF模型中没有使用这些属性。带有元数据的类具有一些常量公共字段(除了主类型中的字段之外)。现在,当我试图查询EF时,它抛出了一个异常,即在元数据类中有未映射的字段。。。请参阅下面的详细信息 class M1 { int Id; string Name } class M2 { int Id; DateTime Date } [MetadataType(typeof(P

我在项目中使用代码优先的方法。在项目中,我有一些带有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 exists表中,名为“NotRelatedToModel”,但我不想在我的模型中使用它。我使用EF6

现在,当我尝试对M1和M2进行连接查询时,它抛出了下面的异常

“NotRelatedToModel”包含以下未知属性或字段:规则集1、规则集2。请确保这些成员的名称与主类型上的属性名称匹配

我可以把这个静态场移到另一个地方,它似乎起作用了,但我想知道为什么会这样?EF代码优先映射是如何工作的


提前感谢

在映射的类中是否有NotRelatedToModel类型的属性?没有,没有任何,实际上历史就是下一个:我使用数据库优先的方法创建了主程序集,我创建了另一个程序集(插件),在其中我创建了代码优先上下文。在这个插件中,我必须使用main(DB-first)模型和我的插件enity,但它们没有交叉。P.S.代码优先并没有更新DB(我已经用脚本手动更新了它),我喜欢代码优先的灵活性