когда я хочу отправить данные для просмотра, я получаю недопустимую ошибку столбца CreamType_Id
: введите описание изображения здесь
System.Data.Entity.Core.EntityCommandExecutionException: 'An error occurred while executing the command definition. See the inner exception for details.'
SqlException: Invalid column name 'CreamType_Id'.
Я сделал это на примере.но это не работает, и я не знаю, как это исправить
мои модели
public class CreamTypeModel
{
[Key]
public int Id { get; set; }
public string Type { get; set; }
}
public class CreamModel
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public decimal Price { get; set; }
public string ImageName { get; set; }
public int? Type_id { get; set; }
public CreamTypeModel CreamType { get; set; }
}
Они не имеют ничего общего с public CreamTypeModel CreamType { get; set; }
в примере.
мой код в базе данных
CREATE TABLE [dbo].[CreamTypeModels] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Type] NVARCHAR (100) NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
CreamTypeModels
CREATE TABLE [dbo].[CreamModels] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Name] NVARCHAR (70) NOT NULL,
[Description] NVARCHAR (250) NOT NULL,
[Price] DECIMAL (18, 2) NOT NULL,
[ImageName] NVARCHAR (100) NOT NULL,
[Type_id] INT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC),
FOREIGN KEY ([Type_id]) REFERENCES [dbo].[CreamTypeModels] ([Id]) ON DELETE SET NULL
);
CreamsModels
код хранилища
public class CreamRepository : ICreamRepository
{
private CreamEFDbContext context = new CreamEFDbContext();
public IEnumerable<CreamModel> CreamList
{
get { return context.CreamModels.Include(x => x.CreamType); }
}
public IEnumerable<CreamTypeModel> CreamTypeList
{
get { return context.CreamTypeModels; }
}
}
и метод контроллера
[HttpGet]
[Authorize(Roles = "Administrator")]
public PartialViewResult TableCreams()
{
return PartialView(creamManager.CreamList.ToList());
}
Я нахожу, как исправить то, что я переименую поле public int? Type_id { get; set; }
в public int? CreamTypeModel_id { get; set; }
и в базе данных тоже.Но действительно интересно, почему это не работает?без этого исправить ??У кого-нибудь есть идеи?