Reputation: 121
I am running into an issue in Visual Studio 2012 that involves the System.ComponentModel.DataAnnotations.Schema namespace. It tells me that the ForeignKeyAttribute cannot be resolved, the solution in the past was to add the using statement that is commented out below. VS2012 can't resolve the Schema namespace as VS2010 was able to. Has anything changed in recent .Net releases that would be causing this problem? If so, how do I work around them?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel.DataAnnotations;
// using System.ComponentModel.DataAnnotations.Schema;
namespace Data
{
public class AffiliateUser
{
[Key, ForeignKey("User")]
public int UserId { get; set; }
[StringLength(50)]
public string AffiliateUserKey { get; set; }
public Guid ApiKey { get; set; }
public string PasswordHash { get; set; }
public bool IsDeleted { get; set; }
}
}
Upvotes: 12
Views: 28223
Reputation: 1
Delete the already added reference System.ComponentModel.DataAnnotations and include it again.
If it still doesn't work, uninstall entity framework completely and reinstall it via nuget manager.
Upvotes: -3
Reputation: 3460
You can find the assembly in the References section of the project. Click on the framework tab and search for the Assembly. This is a default assembly from the Microsoft .Net framework.
Upvotes: 0
Reputation: 273274
Your code and the System.ComponentModel.DataAnnotations.Schema
namespace are correct.
So check your references. This one should be in Assembly System.ComponentModel.DataAnnotations.dll, v4.0.0.0
Did you upgrade the project from Fx 4?
You can fix the version with NuGet.
Upvotes: 4
Reputation: 24403
Are you sure you are targeting .NET 4.5 Framework. ForeignKeyAttribute is only available in .NET 4.5
Upvotes: 18