2012-10-19 97 views
11

Tôi đang gặp sự cố trong Visual Studio 2012 có liên quan đến không gian tên System.ComponentModel.DataAnnotations.Schema. Nó cho tôi biết rằng ForeignKeyAttribute không thể được giải quyết, giải pháp trong quá khứ là thêm câu lệnh được sử dụng được nhận xét bên dưới. VS2012 không thể giải quyết không gian tên Schema như VS2010 đã có thể. Có gì thay đổi trong các bản phát hành gần đây .Net có thể gây ra sự cố này không? Nếu vậy, làm thế nào để tôi làm việc xung quanh họ?System.ComponentModel.DataAnnotations.Schema không tìm thấy

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

Trả lời

18

Bạn có chắc bạn đang nhắm mục tiêu NET 4.5 Framework. ForeignKeyAttribute chỉ khả dụng trong .NET 4.5

+0

Đó là nó, cảm ơn sự giúp đỡ. – ThirtyApes

+0

Vâng điều này đã cứu tôi. Theo mặc định, thư viện lớp học của tôi là 4.0 – Simon

4

Mã của bạn và không gian tên System.ComponentModel.DataAnnotations.Schema là chính xác.

Vì vậy, hãy kiểm tra tham chiếu của bạn. Mục này phải ở trong Assembly System.ComponentModel.DataAnnotations.dll, v4.0.0.0

Bạn đã nâng cấp dự án từ Fx 4 chưa?

Bạn có thể sửa phiên bản bằng NuGet.

5

Tôi đã cài đặt lại Khung thực thể và nó hoạt động!

+0

Câu trả lời của bạn đã khắc phục sự cố cho tôi. Cảm ơn! – Flater

0

Bạn có thể tìm thấy lắp ráp trong phần Tham khảo của dự án. Nhấp vào tab khung và tìm kiếm Hội đồng. Đây là một assembly mặc định từ Microsoft .Net framework.

-3

Xóa tham chiếu đã thêm System.ComponentModel.DataAnnotations và bao gồm lại.

Nếu vẫn không hoạt động, hãy gỡ cài đặt khung thực thể hoàn toàn và cài đặt lại nó thông qua trình quản lý nuget.