LINQ - Entities

LINQ - Entities 首页 / LinQ入门教程 / LINQ - Entities

作为ADO.NET实体框架的一部分,LINQ to Entities比LINQ to SQL更灵活,但由于其复杂性和缺少关键功能而并不流行。但是,它不具有LINQ to SQL的局限性,后者仅允许在SQL Server数据库中进行数据查询,因为LINQ to Entities可以促进大量数据提供程序(如Oracle,MySQL等)中的数据查询。

此外,它在某种程度上得到了ASP.Net的大力支持,即用户可以利用数据源控件来通过LINQ到Entities执行查询,并且不需要任何额外的编码就可以方便地绑定输出。

无涯教程网

LINQ to Entities具有这些优势,已成为当今在数据库上使用LINQ的标准机制。 LINQ to Entities还可以更改查询的数据详细信息并轻松提交批处理更新。关于LINQ to Entities的最有趣的事实是,它具有与SQL相同的语法,甚至具有相同的标准查询运算符组,如Join,Select,OrderBy等。

查询创建和执行过程

ObjectContext 是允许与实体数据模型进行交互的主要类,换句话说,它是将LINQ连接到数据库的桥梁。

另一方面,实体框架实际上是对象Relational Mapper ,通常被开发人员简称为ORM,开发人员根据数据库表生成业务对象以及实体,并促进了诸如创建,更新,删除和阅读。下图显示了实体框架及其组件。

LINQ - Entities

添加,更新,删除示例

首先按照以下步骤添加实体模型。

第1步  -  右键单击项目,然后单击添加新项将打开窗口,如下所示。选择ADO.NET实体数据模型并指定名称,然后单击"Add"。

LINQ - Entity Model

第2步  -  选择从数据库生成。

LINQ - Entity Model

第3步  -  从下拉菜单中选择"数据库连接"。

LINQ - Entity Model

第4步  -  选择所有Table。

LINQ - Entity Model

现在编写以下代码。

链接:https://www.learnfk.comhttps://www.learnfk.com/linq/linq-entities.html

来源:LearnFk无涯教程网

using DataAccess;
using System;
using System.Linq;

namespace LINQTOSQLConsoleApp {
   public class LinqToEntityModel {
      static void Main(string[] args) {

         using (LinqToSQLDBEntities context = new LinqToSQLDBEntities()) {
            //Get the List of Departments from Database
            var departmentList = from d in context.Departments
            select d;

            foreach (var dept in departmentList) {
               Console.WriteLine("Department Id={0} , Department Name={1}",
                  dept.DepartmentId, dept.Name);
            }

            //Add new Department
            DataAccess.Department department = new DataAccess.Department();
            department.Name = "Support";

            context.Departments.Add(department);
            context.SaveChanges();

            Console.WriteLine("Department Name=Support is inserted in Database");

            //Update existing Department
            DataAccess.Department updateDepartment = context.Departments.FirstOrDefault(d d.DepartmentId == 1);
            updateDepartment.Name = "Account updated";
            context.SaveChanges();

            Console.WriteLine("Department Name=Account is updated in Database");

            //Delete existing Department
            DataAccess.Department deleteDepartment = context.Departments.FirstOrDefault(d d.DepartmentId == 3);
            context.Departments.Remove(deleteDepartment);
            context.SaveChanges();

            Console.WriteLine("Department Name=Pre-Sales is deleted in Database");

            //Get the Updated List of Departments from Database
            departmentList = from d in context.Departments
            select d;

            foreach (var dept in departmentList) {
               Console.WriteLine("Department Id={0} , Department Name={1}",
                  dept.DepartmentId, dept.Name);
            }
         }

         Console.WriteLine("\nPress any key to continue.");
         Console.ReadKey();
      }
   }
}

编译并执行上述代码后,将产生以下输出-

LINQ - Entity Model Result

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

零基础学Java -〔臧萌〕

Electron开发实战 -〔邓耀龙〕

TensorFlow 2项目进阶实战 -〔彭靖田〕

Linux内核技术实战课 -〔邵亚方〕

Flink核心技术与实战 -〔张利兵〕

代码之丑 -〔郑晔〕

说透数字化转型 -〔付晓岩〕

Spring Cloud 微服务项目实战 -〔姚秋辰(姚半仙)〕

林外 · 专利写作第一课 -〔林外〕

好记忆不如烂笔头。留下您的足迹吧 :)