2012-10-19 1 views
11

Ich stoße auf ein Problem in Visual Studio 2012, das den Namespace System.ComponentModel.DataAnnotations.Schema involviert. Es sagt mir, dass das ForeignKeyAttribute nicht aufgelöst werden kann, die Lösung in der Vergangenheit war, die using-Anweisung hinzuzufügen, die unten auskommentiert ist. VS2012 kann den Schema-Namespace nicht auflösen, wie es VS2010 konnte. Hat sich in den letzten .Net-Releases irgendetwas geändert, das dieses Problem verursachen würde? Wenn ja, wie arbeite ich um sie herum?System.ComponentModel.DataAnnotations.Schema nicht gefunden

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; } } }

Antwort

18

Sind Sie sicher, dass Sie .NET 4.5 Framework-Targeting. ForeignKeyAttribute ist nur in .NET 4.5

+0

Das war es, danke für die Hilfe. – ThirtyApes

+0

Ja, das hat mich auch gerettet. Standardmäßig war meine Klassenbibliothek 4.0 – Simon

4

Ihr Code und die System.ComponentModel.DataAnnotations.Schema Namespace korrekt sind.

Überprüfen Sie Ihre Referenzen. Dieser sollte in Assembly System.ComponentModel.DataAnnotations.dll, v4.0.0.0 sein

Haben Sie das Projekt von Fx 4 aktualisiert?

Sie können die Version mit NuGet reparieren.

5

Ich habe das Entity Framework neu installiert und es funktioniert!

+0

Ihre Antwort behob das Problem für mich. Vielen Dank! – Flater

0

Sie können die Baugruppe im Abschnitt Referenzen des Projekts finden. Klicken Sie auf die Registerkarte "Framework" und suchen Sie nach der Assembly. Dies ist eine Standardassembly aus dem Microsoft .NET-Framework.

-3

Löschen Sie die bereits hinzugefügte Referenz System.ComponentModel.DataAnnotations und fügen Sie sie erneut ein.

Wenn es immer noch nicht funktioniert, deinstallieren Sie das Entityframework vollständig und installieren Sie es über den Nuget-Manager neu.