2013-06-06 3 views
1

Я начал изучать MVC, создавая учебник на веб-сайте ASP.net, но я не могу понять одну вещь.EntityType не имеет ключа, определенного в MVC 4

Когда я создаю контроллер и модель он дает мне ошибку

System.Data.Entity.Edm.EdmEntityType: : EntityType 'TusofonaFields' has no key defined. Define the key for this EntityType.

Я пытаюсь искать по сети, и они всегда утверждает, что ее не хватает кнопки [Key] на Id, но unfortenatly моя визуальная студия дает меня ошибка:

The type or namespace name 'Key' could not be found (are you missing a using directive or an assembly reference?)

Мой код:

public ActionResult Index() 
{ 
    return View(db.site_membros.ToList()); 
} 

И модель:

namespace MvcApplication2 
{ 
    public class TusofonaFields 
    { 
     public int IDMembro { get; set; } 
     public string Alcunha { get; set; }   
     public DateTime Aniversario { get; set; }   
     public string Foto { get; set; } 
    } 

public class TusofonaTable : DbContext 
{   
    public DbSet<TusofonaFields> site_membros { get; set; } 
} 

}

+0

Прочитать сообщение об ошибке; он говорит вам о проблеме: вам не хватает пространства имен. Посмотрите 'KeyAttribute' на MSDN, и вы обнаружите, что он находится в' System.ComponentModel.DataAnnotations'. Добавьте для этого «использование»; это сработает. Сообщения об ошибках стараются быть полезными; читай их! – anaximander

+0

Мне не хватало 2 вещи, но главное было ссылкой: using System.ComponentModel.DataAnnotations; (я попробовал атрибут [Key], но так как у меня не было ссылки, оно обрабатывалось как ошибка) – macieira

ответ

1

Ну, ошибка говорит вам, что происходит: вы недостающее ссылки.

В EntityFramework 4: Убедитесь, что у вас есть System.ComponentModel.DataAnnotations в ссылках на проект. Затем добавьте using System.ComponentModel.DataAnnotations; имен в верхней части файла CS или использовать Mouse2 на [Key]>Resolve>using System.ComponentModel.DataAnnotations;

Если вы используете EntityFramework 5 пространство имен вам нужно System.ComponentModel.DataAnnotations.Schema

+0

Спасибо. Отсутствовал код: using System.ComponentModel.DataAnnotations ;. Спасибо – macieira

4

Если вы используете мастер MVC4 для создания представления, и вы не хотите ключа в viewModel, убедитесь, что текстовое поле «Контекст контекста данных» пусто в диалоговом окне. Если это поле заполнено контекстом DB EntityFramework, вы получите эту ошибку. Удалите его, и ошибка исчезнет.

+1

Это было мое решение. –

Смежные вопросы