Тип сущности требует, чтобы был определен первичный ключ - первичный ключ - ЕДИНСТВЕННАЯ вещь, которая определена - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь добавить модель в проект, над которым я работаю, и сегодня я сталкиваюсь с проблемой, когда каждый раз, когда я пытаюсь добавить миграцию, я получаю сообщение об ошибке "Тип сущности" _____ "требует определения первичного ключа ". У модели есть свойство с именем «ID», и я попытался добавить к нему атрибут [Key], и я даже попытался удалить все, кроме свойства ID, и он все равно не будет работать.

Вот модель:

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;

namespace APD_Remastered_Ideas.Models
{
    public class TestModel
    {
        [Key]
        public int Id;
        public string address { get; set; }
    }
}

Редактировать: я также сам пытался написать миграцию:

using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;

namespace APD_Remastered_Ideas.Data.Migrations
{
    public partial class addTestModelToDb : Migration
    {
        protected override void Up(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.CreateTable(
            name: "TestModel",
            columns: table => new
            {
                Id = table.Column<int>(nullable: false)
                    .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn)
            },
            constraints: table =>
            {
                table.PrimaryKey("PK_TestModel", x => x.Id);
            });
        }

        protected override void Down(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.DropTable(
            name: "TestModel");
        }
    }
}

И я также пытался вручную создать таблицу в SSMS. Во всех других моих проектах добавление моделей таким способом все еще работает. Однако в этом проекте я не могу добавить ничего.

Кто-нибудь знает, что я здесь не так делаю?

1 Ответ

0 голосов
/ 28 октября 2019

Оказывается, я забыл поставить {get; set; } после свойства Id. Вот исправленная модель:

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;

namespace APD_Remastered_Ideas.Models
{
    public class TestModel
    {
        [Key]
        public int Id { get; set; }
        public string address { get; set; }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...