[英]C# Entity Framework - Invalid column name
我有兩個類的上下文:
在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);
}
}
這是我名為Brand的課程:
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; }
}
這是Brand表結構:
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)
);
自行車表的結構如下:
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);
我該如何克服這個問題?
要解決“無效的列名'BrandBike_BrandID'”錯誤,您需要在表Bike
添加一個名為BrandId
的列。 此列應存儲與自行車相關的BrandId
。
我沒有您的Bike
表結構,但是“無效列名'Strokes'”表示該表中沒有名為Strokes
列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.