Подтвердить что ты не робот

System.ComponentModel.DataAnnotations.Schema не найден

У меня возникает проблема в Visual Studio 2012, которая включает пространство имен System.ComponentModel.DataAnnotations.Schema. Он говорит мне, что ForeignKeyAttribute не может быть разрешен, решение в прошлом заключалось в том, чтобы добавить оператор using, который прокомментирован ниже. VS2012 не может разрешить пространство имен схемы, как это было VS2010. Что-то изменилось в последних выпусках .Net, которые могут вызвать эту проблему? Если да, то как мне обойти их?



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

4b9b3361

Ответ 1

Вы уверены, что настроены на платформу .NET 4.5 Framework. ForeignKeyAttribute доступен только в .NET 4.5

Ответ 2

Я переустановил Entity Framework, и он работает!

Ответ 3

Ваш код и пространство имен System.ComponentModel.DataAnnotations.Schema верны.

Итак, проверьте свои рекомендации. Это должно быть в Assembly System.ComponentModel.DataAnnotations.dll, v4.0.0.0

Вы обновили проект с Fx 4?

Вы можете исправить версию с помощью NuGet.

Ответ 4

Вы можете найти сборку в разделе "Ссылки" проекта. Перейдите на вкладку "Структура" и выполните поиск сборки. Это сборка по умолчанию из Microsoft.Net framework.

Ответ 5

Мой проект был построен с.NET 4.5, и мне пришлось понизить проект до.NET 4.0. Поэтому мой пакет NuGet для EntityFramework ссылался на версию.NET 4.5 после понижения.

Я удалил EntityFramework и переустановил его с помощью "Управление пакетами NuGet для решения..." (щелкнув правой кнопкой мыши на решении в VS2017), и моя проблема была решена.

У меня недавно был такой же вопрос. Для чего это стоит, я бы прокомментировал ответ о повторной установке Entity Framework, но я не могу комментировать.

Это просто для того, чтобы предоставить немного больше контекста/информации для этого ответа, поскольку он дал мне что-то попробовать, но не дал достаточно подробностей о том, как это сделать или почему это нужно сделать.

Ответ 6

Удалите уже добавленную ссылку System.ComponentModel.DataAnnotations и включите ее снова.

Если он все еще не работает, полностью удалите инфраструктуру сущности и переустановите ее через менеджер nuget.