diff --git "a/\344\275\231\344\270\275/202241205-\347\254\224\350\256\260.md" "b/\344\275\231\344\270\275/202241205-\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..1dca31411f8c19e5c5d7eb9706a09a60680e3c89 --- /dev/null +++ "b/\344\275\231\344\270\275/202241205-\347\254\224\350\256\260.md" @@ -0,0 +1,27 @@ +## 数据模型 +1.数据库的选择和权衡 + + - Sqlserver + - PosttgreSQL + - Mysql/MariaDb + - Oracel + - Db2 + - Sybase + + +2.ORM工具的选择和使用 + + - EntityFrameworkCore + - Dapper + - SqlSuper + + +3.定义与职责 +* 数据模型是MVC模式中的核心组件之一 +* 它负责处理应用程序的数据逻辑,包括数据的获取、处理和存储 +* 模型通常使用类或对象来表示数据,并提供对数据的操作方法 + +4.特点与优势 +* 独立性:模型与视图和控制器相互独立,可以被其他应用程序重复使用 +* 可重用性:由于MVC模式的分离性,模型可以在不同的应用程序中重用,从而减少代码的重复编写,提高开发效率 +* 易于维护:模型具有清晰的职责和功能,使得应用程序的数据处理部分变得易于理解和维护 diff --git "a/\344\275\231\344\270\275/20241202-\347\254\224\350\256\260.md" "b/\344\275\231\344\270\275/20241202-\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..5b75da826d975c5d8ab1e9167286f3f2654b15bb --- /dev/null +++ "b/\344\275\231\344\270\275/20241202-\347\254\224\350\256\260.md" @@ -0,0 +1,36 @@ +## 模型(Model): +1.增加(Create):模型负责创建新的数据对象。例如,在一个博客系统中,模型可能会创建一个新的文章对象,并将其保存到数据库中。 + +2.读取(Read):模型从数据库中检索数据。例如,它可能会获取所有文章的列表或特定文章的详细信息。 + +3.更新(Update):模型更新现有数据对象。例如,它可能会更新文章的内容或标题,并保存这些更改到数据库中。 + +4.删除(Delete):模型从数据库中删除数据对象。例如,它可能会删除一个不再需要的文章。 + +5.视图(View):视图是用户界面,负责显示数据(模型)和接收用户输入。在增删改查操作中,视图会显示表单供用户输入数据,显示数据列表,以及显示操作的结果(成功或失败的消息)。 + +6.控制器(Controller):控制器是应用程序的中介,它接收用户的输入并调用模型和视图去完成用户的需求。 + +7.增加(Create):控制器接收用户提交的表单数据,调用模型创建新数据对象,然后可能重定向到一个视图以显示确认消息或新创建的对象。 + +8.读取(Read):控制器请求模型提供数据,然后选择一个视图来展示这些数据。 + +9.更新(Update):控制器接收用户对数据的更改,调用模型更新数据对象,然后可能重定向到一个视图以显示更新后的对象或确认消息。 + +10.删除(Delete):控制器处理删除请求,调用模型删除数据对象,然后可能重定向到一个视图以显示确认消息或更新后的数据列表。 + + +## 步骤 +1.创建一个mvc项目dotnet new mvc -o Blog + +2.创建一个控制器--BlogsController.cs + +3.创建对应的视图Blogs--Index.cshtml + +4.创建模型 Blogs.cs + +5.创建一个模型Db.cs(模拟数据库) 在里面放集合数据 + +6.需要在BlogsController控制器中的Index函数中return View(Db.blogs);,在控制器中也要引用using Blog.Models; + +7.在视图中显示集合数据 \ No newline at end of file diff --git "a/\344\275\231\344\270\275/20241204-\347\254\224\350\256\260.md" "b/\344\275\231\344\270\275/20241204-\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..5e66d5fb4294977e5f93d1c7a6110bf957e1e808 --- /dev/null +++ "b/\344\275\231\344\270\275/20241204-\347\254\224\350\256\260.md" @@ -0,0 +1,30 @@ +## 三、Ling集成查询(关联Lambda) +1.First FirstOrDefaualt 找第一个符合条件的元素 + + - First(x=>x.Id==id) 返回第一个Id等于id的元素,如果都没有符合的,报错 + - FirstOrDefaualt(x=>x.Id==id) 返回第一个Id等于id的元素,如果都没有符合的,返回Null + + +2. Single SingleOrDefault + + - Single() 返回第一个元素,如果没有,报错 + - SingleOrDefault() 返回第一个元素,如果没有,返回Null + +3.Where + + - Where(x=>x.Score>=80 && x.Sex==1) 查找所有成绩大于等于80,并且性别为1的所有元素 + +4.Select + + - Select(x=>new{x.Id,x.score})以新的{x.Id,x.score}对象的形式,返回新的集合 + +from XX in XX where XXX select; + +### 表单步骤 +1.已经验证表单数据可以传入 + +2.拿到传入的数据后,一般做验证,数据验证,如果不是必填、长度是不是符合要求、名称是不是存在、手机格式对不对。电子邮箱对不对 + +3.如果符合验证规则,则保存到数据库,否则提示验证不通过 + +4.如果保存数据库成功,则跳转标液,如果验证不通过,那就依然显示新增页面