C # Entity Framework - Неверное имя столбца - PullRequest
0 голосов
/ 17 мая 2018

У меня есть контекст с этими двумя классами:

В классе Brand есть список объектов Bike.

Когда я пытаюсь поместить список Bike в экземпляр Brand,программа возвращает мне это исключение:

Invalid column name 'Strokes'.
Invalid column name 'BrandBike_BrandID'.

Это мой контекст:

public class MyContext: DbContext
{
    public DbSet<Brand> Brands{ get; set; }
    public DbSet<Bike> Bikes{ get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        Database.SetInitializer<MyContext>(null);
        base.OnModelCreating(modelBuilder);
    }
}

Это мой класс с именем Бренд:

public class Brand
{
    [Key]
    public int BrandID { get; set; }
    [Required]
    public string Name { get; set; }
    public Country Nationality { get; set; }

    public virtual List<Bike> Models { get; set; }
}

public class Bike
{
    [Key]
    public int BikeID { get; set; }

    public string Model { get; set; }
    public BikeCategory Category { get; set; }
    public int EngineCapacity { get; set; }
    public int Strokes { get; set; }
    public double Price { get; set; }

    public virtual Brand BrandBike { get; set; }
}

Это таблица Брэндовструктура:

CREATE TABLE [dbo].[Brands] (
[BrandID]     INT            IDENTITY (1, 1) NOT NULL,
[Name]        NVARCHAR (MAX) NULL,
[Nationality] INT            NOT NULL,
CONSTRAINT [PK_dbo.Brands] PRIMARY KEY CLUSTERED ([BrandID] ASC)
);

А это структура таблицы Bike:

CREATE TABLE [dbo].[Bikes] (
[BikeID]        INT            IDENTITY (1, 1) NOT NULL,
[Model]       NVARCHAR (MAX) NULL,
[Category]      INT            NOT NULL,
[EngineCapacity]    INT            NOT NULL,
[Price]        FLOAT (53)     NOT NULL,
[Brand_BrandID] INT            NULL,
CONSTRAINT [PK_dbo.Bikes] PRIMARY KEY CLUSTERED ([BikeID] ASC),
CONSTRAINT [FK_dbo.Bikes_dbo.Brands_Brand_BrandID] FOREIGN KEY 
([Brand_BrandID]) REFERENCES [dbo].[Brands] ([BrandID])
);


GO
CREATE NONCLUSTERED INDEX [IX_Brand_BrandID]
ON [dbo].[Bikes]([Brand_BrandID] ASC);

Как мне решить эту проблему?

1 Ответ

0 голосов
/ 17 мая 2018

Чтобы устранить ошибку "Неверное имя столбца 'BrandBike_BrandID'" , необходимо добавить в таблицу столбец с именем BrandId Bike. В этой колонке должен храниться BrandId, с которым связан велосипед.

У меня нет вашей Bike структуры таблицы, но "Недопустимое имя столбца" Штрихи "" означает, что в этой таблице нет столбца с именем Strokes.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...