当我们在ASP中创建数据库时.为什么我们要用lambda表达式来返回元素的id呢?
本文关键字:我们 返回 表达式 元素 id lambda ASP 创建 数据库 为什么 | 更新日期: 2023-09-27 18:08:09
在我看到的所有示例中,例如
protected override void Seed(BookService.Models.BookServiceContext context)
{
context.Authors.AddOrUpdate(x => x.Id,
new Author() { Id = 1, Name = "Jane Austen" },
new Author() { Id = 2, Name = "Charles Dickens" },
new Author() { Id = 3, Name = "Miguel de Cervantes" }
);
context.Books.AddOrUpdate(x => x.Id,
new Book() { Id = 1, Title = "Pride and Prejudice", Year = 1813, AuthorId = 1,
Price = 9.99M, Genre = "Comedy of manners" },
new Book() { Id = 2, Title = "Northanger Abbey", Year = 1817, AuthorId = 1,
Price = 12.95M, Genre = "Gothic parody" },
new Book() { Id = 3, Title = "David Copperfield", Year = 1850, AuthorId = 2,
Price = 15, Genre = "Bildungsroman" },
new Book() { Id = 4, Title = "Don Quixote", Year = 1617, AuthorId = 3,
Price = 8.95M, Genre = "Picaresque" }
);
}
从这里,我看到有一个lambda表达式作为AddOrUpdate
的第一个参数,并且它总是显示为表的Id
(主键?)。有人能解释一下lamba是什么意思吗?检查Id
是否为null
?我困惑。
定义应该检查哪个属性,以查看Seed()
-方法是否应该UPDATE
或INSERT
。在这种情况下,如果给定的ID已经在数据库中,它将不会再次插入它(而是更新现有的条目)。
但是你也可以检查Title
, Year
,…或其他属性来定义是否应该在数据库中插入或更新条目。基本上,这是为了防止数据库中的重复,但您可以为您的重复赋予意义。