.NET 4.0中可替代.NET 4.5命名空间

4

有一些MVC应用程序的代码是在.NET 4.5框架下使用VS 2012构建的。但是我的系统要求我在VS 2010上工作。我设法在我的VS 2010中打开了VS 2012解决方案,但问题是VS 2010仅支持.NET 4。

代码中有一些函数使用只适用于.NET 4.5的dll文件,例如 System.ComponentModel.DataAnnotations.Schema

因此,在.NET 4中是否有可用于执行与.NET 4.5相同操作的替代函数/属性?

这是我当前使用.NET 4.5的代码:

 [Table("UserProfile")]
    public class UserProfile
    {
        [Key]
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int UserId { get; set; }
        public string UserName { get; set; }
    }

如您所见,DatabaseGeneratedAttribute 可在 System.ComponentModel.DataAnnotations.Schema 命名空间下找到,这是 .NET 4.5 的一部分。

请问,在 .NET 4 中有哪些对应的函数/属性可以表示相同的逻辑呢?

注意:在上面给出的代码片段中,我遇到了 TableDatabaseGeneratedAttribute 的错误提示:

无法找到类型或命名空间名称 'Table'(是否缺少 using 指令或程序集引用?)

以及

无法找到类型或命名空间名称 'DatabaseGeneratedAttributeAttribute'(是否缺少 using 指令或程序集引用?)

因此,我猜想只需要在 NET 4.0 中找到相应的类即可解决问题。非常感谢您的帮助。


这些注释是 Entity Framework 5.0 的一部分(也可能是早期版本,我不确定)。无论哪种方式,EF5 都应该与 .NET 4.0 兼容,所以只需将其添加到您的项目即可。 - millimoose
但是先生,我已经在我的项目中引用了EF 5。这是参考文献 Assembly EntityFramework -D:\Programming\MVC\PassMe\packages\EntityFramework.5.0.0\lib\net45\EntityFramework.dll - Swayam
这里http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.schema.databasegeneratedattribute.aspx,显示它可用于.NET 4.5版本。我有什么遗漏吗? - Swayam
1
这篇文章有帮助吗?作者声称能够在使用VS2010 SP1的MVC4应用程序中使用System.ComponentModel.DataAnnotations.Schema - Srikanth Venugopalan
@SrikanthVenugopalan:非常感谢您的精彩文章!看起来非常有前途。我会努力实践并告诉您结果。谢谢! :) - Swayam
好的 - 我会将其作为答案移动,请回复您的反馈。 - Srikanth Venugopalan
4个回答

10

我在从.NET 4.5切换到4.0后遇到了同样的问题。根据这篇文章所述,".NET 4.0有一个特殊版本的Entity Framework程序集",其中包含DataAnnotations,否则这些注释已经被合并到.NET 4.5中。

重新安装Entity Framework可以使System.ComponentModel.DataAnnotations.Schema再次工作。在Package Manager Console中键入以下内容以重新安装:

Uninstall-Package EntityFramework
Install-Package EntityFramework

4
这篇文章中,作者声称可以在使用VS2010 SP1的MVC4应用程序中使用System.ComponentModel.DataAnnotations.Schema
如果这对您有用,请告诉我们。

1

Henrik的解决方案同样适用于相反的情况。我遇到了从.net 4.0升级到.net 4.5.1以支持MVC 5.2.3的问题。我得到了相同的错误。在这种情况下,卸载并重新安装Entity Framework也解决了问题:

Uninstall-Package EntityFramework
Install-Package EntityFramework

谢谢你对相反情况的澄清! :) - Swayam

0

包管理器控制台对我来说不起作用。我必须去管理Nuget包才能解决这个问题。我正在使用VS.net 2013


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接