实体框架 6 与 system.componentmodel.annotations网络标准兼容程序集中的数据注释不兼容?

问题描述

我正在尝试将实体框架与定义为 net standard2.0 nuget 包一部分的一组实体一起使用。使用Entity框架的项目是一个net472项目。当我在测试中构建模型时,我看到以下错误

System.Data.Entity.ModelConfiguration.ModelValidationException: One or more validation errors were detected during model generation:

CodeFirstNamespace.<TestEntity>: : EntityType 'TestEntity' has no key defined. Define the key for this EntityType.
TestEntities: EntityType: EntitySet 'TestEntity' is based on type 'TestEntity' that has no keys defined.

上述错误表示实体之一未定义键,但已定义键属性。下面是实体定义

[Table("TestEntity")]
[FilterSupported]
internal sealed class TestEntity
{
    [Key]
    [Column("entity1Id",Order = 1)]
    public int TestId{ get; set; }

    public RelatedEntity entity1Id{ get; set; }

    [Key]
    [Column("entity2",Order = 2)]
    public int entity2Id { get; set; }

    public RelatedEntity2 entity2 { get; set; }
}

以下是项目中用到的参考

  • 实体框架 6
  • System.ComponentModel.Annotations 4.7(我们的实体 nuget 所需的净标准兼容性)
  • 实体 dll(网络标准 2.0 nuget)

这个定义工作正常,直到“System.ComponentModel.DataAnnotations”被“System.ComponentModel.Annotations”取代。

有什么办法可以解决这个问题,还是应该改用实体核心,因为它支持点网标准?

提前致谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)