[英]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.