如何解决实体框架 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 举报,一经查实,本站将立刻删除。