gpt4 book ai didi

c# - 如何升级 Entity Framework 5 Code First 的 DataAnnotations

转载 作者:太空宇宙 更新时间:2023-11-03 18:33:36 25 4
gpt4 key购买 nike

我正在尝试从 EF 4.3.1 升级到 EF 5,并从 .Net 4 更改为 .Net 4.5。这是给我带来麻烦的类的示例:

using System.ComponentModel.DataAnnotations;

public class MyClass
{
[Key, Column(Order = 0)]
public int CompositeKey1Id { get; set; }

[Key, Column(Order = 1)]
public int CompositeKey2Id { get; set; }
}

首先我收到错误 Cannot resolve symbol 'Column'

所以我添加
使用 System.ComponentModel.DataAnnotations.Schema;
因为 ColumnAttribute 移到了 Schema 命名空间中。现在我收到一个模糊引用错误,因为 ColumnAttribute 存在于 EntityFramework.dll 和 System.ComponentModel.DataAnnotations.dll 中。

所以我尝试删除 System.ComponentModel.DataAnnotations.dll 作为引用,现在我得到了 Cannot resolve symbol 'Key' 因为 KeyAttribute 在那个 dll 中,但不在 EntityFramework.dll 中。

除非 EF5 中不再需要 KeyAttribute,否则我必须降级到 .Net 4 才能编译此代码。那不可能是对的,是吗?我在这里缺少什么?

最佳答案

您需要卸载 EF,然后将您的项目重新定位到 4.5,然后安装 EF。如果您首先重新安装 EF,您最终将获得 .NET Framework 4(程序集版本 4.4.0.0)的 EF5,其中包含数据注释,因为它们不在 .NET Framework 4 中,并且数据注释来自 System.Data.ComponentModel.DataAnnotations。 dll 在 .NET Framework 4.5 中数据注释被移动到的位置。在 .NET Framework 4.5 上,您希望为 .NET Framework 4.5(程序集版本 5.0.0.0)安装 EF5,这应该可以解决问题。如果您已经重新定位项目,只需卸载并重新安装 EF。

关于c# - 如何升级 Entity Framework 5 Code First 的 DataAnnotations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18775065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com