数据库使用MongoDB 验证使用非侵入式脚本
Model
public class Book
{
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
[BsonElement("Name")]
[Display(Name ="名称")]
[Required(ErrorMessage ="{0}不能为空")]
public string BookName { get; set; }
[Display(Name = "价格")]
[Required(ErrorMessage = "{0}不能为空")]
public decimal Price { get; set; }
[Display(Name = "分类")]
[Required(ErrorMessage = "{0}不能为空")]
public string Category { get; set; }
[Display(Name = "作者")]
[Required(ErrorMessage = "{0}不能为空")]
public string Author { get; set; }
}
Service
public class BookService
{
public readonly IMongoCollection<Book> _books;
public BookService(IBookstoreDatabaseSettings settings)
{
var client = new MongoClient(settings.ConnectionString);
var database = client.GetDatabase(settings.DatabaseName);
_books = database.GetCollection<Book>(settings.BooksCollectionName);
}
public List<Book> Get() =>
_books.Find(book => true).ToList();
public Book Get(string id) =>
_books.Find<Book>(book => book.Id == id).FirstOrDefault();
public Book Create(Book book)
{
_books.InsertOne(book);
return book;
}
public void Update(string id, Book bookIn) =>
_books.ReplaceOne(book => book.Id == id, bookIn);
public void Remove(Book bookIn) =>
_books.DeleteOne(book => book.Id == bookIn.Id);
public void Remove(string id) =>
_books.DeleteOne(book => book.Id == id);
}
注入Service services.AddSingleton<BookService>();
Page下新建文件夹Books Books下新建 Razor页面
列表页 无分页
页面代码
@page
@model RazorPagesMovie.Pages.Books.IndexModel
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
<link href="~/lib/bootstrap/dist/css/bootstrap.css" rel="styleshee