[英]I cannot seed data in Entity Framework Core
我無法將數據植入我的Webapp中,也不知道出了什么問題。 該應用程序運行良好,用戶可以將數據添加到數據庫中。 我添加了saveChanges方法,但沒有結果。 我想我正在將空數據發送到數據庫,但找不到問題。 我的文件:DbContext
public class BookDbContext: DbContext
{
public BookDbContext(DbContextOptions options): base(options)
{
}
public DbSet<Books> Books { get; set; }
}
SeedBooks
public static void Initialize(BookDbContext context)
{
context.Database.EnsureCreated();
if (context.Books.Any())
{
return;
}
var books = new Books[]
{
new Books{Id=1, Title ="Kont of Mount Cristos", Description="About eghteen century", Author="Don Mon", Category=Category.aksion},
new Books{Id=2, Title="Introduction in C Sharp", Description="Learning computer programing", Author="Scott Allen", Category= Category.education},
new Books{Id=3, Title="The Castle", Description="Learning about history", Author="Ismail Kadare", Category= Category.drama},
new Books{Id=4, Title="Madam Bavary", Description="Love story", Author="Gi de Mopasan", Category= Category.romance}
};
foreach (Books b in books)
{
context.Books.Add(b);
}
context.SaveChanges();
}
書籍檔案
public enum Category
{
aksion, drama, romance, education
}
public class Books
{
public int Id { get; set; }
[Required]
public string Title { get; set; }
[Required]
[Display(Name = "Autor Name")]
public string Author { get; set; }
[Required]
[MaxLength(80)]
public string Description { get; set; }
[Required]
public Category Category { get; set; }
}
書籍的索引文件
<table class="table">
@*<thead>
<tr>
<th>
@Html.DisplayNameFor(model => Model.Author)
</th>
<th>
@Html.DisplayNameFor(model => model.Title)
</th>
<th>
@Html.DisplayNameFor(model => model.Category)
</th>
<th>
@Html.DisplayNameFor(model => model.Description)
</th>
<th></th>
</tr>
</thead>*@
<tbody>
@foreach (var item in Model.Book)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Author)
</td>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
<td>
@Html.DisplayFor(modelItem => item.Category)
</td>
<td>
@Html.DisplayFor(modelItem => item.Description)
</td>
<td>
<a asp-action="Details" asp-route-id="@item.Id">Details</a>
</td>
</tr>
}
</tbody>
</table>
<a asp-action="Create" asp-controller="Books">Create</a>
我用ef core 教程轉載了asp.net core mvc的問題。
我閱讀了這篇文章,發現在運行項目時,它將在本地創建一個數據庫,並創建一個學生表,其中包含您已初始化的數據。
var context = services.GetRequiredService<SchoolContext>();
DbInitializer.Initialize(context);
但是,我發現表設計如下:
CREATE TABLE [dbo].[Student] (
[ID] INT IDENTITY (1, 1) NOT NULL,
[Age] INT NOT NULL,
[LastName] NVARCHAR (MAX) NULL,
CONSTRAINT [PK_Student] PRIMARY KEY CLUSTERED ([ID] ASC)
);
ID屬性設置了IDENTITY(1,1) ,這表示要將每個數據添加到表中時都需要添加ID。
因此, 刪除“ IDENTITY(1,1)” ,它將正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.