繁体   English   中英

SQL Server +实体框架基础知识

[英]SQL Server + Entity Framework basics

我有这个任务在C#中创建一个用于管理公司员工的程序。 仅简要概述 - 有关每个员工的所有信息都将存储在MS SQL数据库中。 作为表示层,我必须使用WPF并与数据库进行通信 - LINQ to Entities。

事情是 - 我设法自己学习WPF,但SQL是一个严重的问题。 我做了一些研究,但即使阅读了许多不同的教程,我也没有找到任何令人满意的东西。 我甚至不了解这个模型的机制。 我的理解是,在SQL Server中创建数据库根本不做任何事情,因为在从数据库创建实体模型后,它不再与SQL Server绑定。 因此,更新已创建的SQL数据库中的数据不再适用于程序本身。 我可能错了,这很有可能,但我只是不明白。

那么,有人能指出我正确的方向吗? 我甚至需要知道什么才能开始? 也许这样一个菜鸟的教程?

ADO.NET实体框架(EF)最初是与Visual Studio 2008和.NET Framework 3.5 Service Pack 1一起发布的。到目前为止,许多人将EF视为来自Microsoft的另一个ORM产品,尽管通过设计它应该更强大而不仅仅是一个ORM工具。为这个新框架创建了一个新的数据访问提供程序EntityClient,但在幕后,ADO.NET数据提供程序仍然用于与数据库通信

应用程序不再直接连接到数据库或查看任何特定于数据库的构造; 整个应用程序在更高级别的EDM模型方面运行。 这意味着您不能再使用本机数据库查询语言; 数据库不仅不能理解EDM模型,而且当前的数据库查询语言也没有处理EDM引入的元素所需的构造,如继承,关系,复杂类型等。

LINQ to Entities允许开发人员使用LINQ表达式和LINQ标准查询运算符,针对实体数据模型(EDM)创建灵活的强类型查询

可以在这里找到教程

它基本上与你实际说的相反:

我的理解是,在SQL Server中创建数据库根本不做任何事情,因为在从数据库创建实体模型后,它不再与SQL Server绑定。 因此,更新已创建的SQL数据库中的数据不再适用于程序本身。

实际框架(EF)连接到您的数据库并从您的SQL Server获取数据。 从那时起,当您在应用程序中进行更改时,EF将以“分离”模式运行。 这可能是你困惑的根源。 您缺少的部分是,您使用ef.SaveChanges()告诉EF将所有在“分离”模式下所做的更改推送回您的数据库。 因此,您在内存中进行更改,然后在准备就绪时,告诉EF将这些更改推送到数据库。

现在,另一方面,如果您直接对SQL Server进行更改(我可以看到会发生这种情况的情况),您肯定会遇到“分离”模式EF对象的问题。 老实说,我不确定这里会发生什么,比我更有经验的人应该说,这是一个非常有趣的问题,我也想知道答案。

以下是一些我发现似乎很好的教程信息:

http://www.microsoft.com/downloads/details.aspx?FamilyID=355c80e9-fde0-4812-98b5-8a03f5874e96&displaylang=en实际上是这个答案

并且:

http://www.codeproject.com/Articles/363040/An-Introduction-to-Entity-Framework-for-Absolute-B

编辑:当我谈到分离模式时,了解在EF内部有各种模式可以操作,其中一种是分离模式。 我讨厌在我的回答中使用“detatched mode”这个术语b / c我知道其他人会出现并说这个术语令人困惑,而且它们是正确的。 只是了解EF内部有一个'detatched'模式,它有点像一个高级主题。

实体框架非常简单且非常强大的ORM。 我对你的建议是从http://www.asp.net/entity-framework开始。 在这里,您可以找到许多入门教程,以帮助您在短时间内启动和运行。 虽然这些教程与ASP.NET绑定,但您可以非常轻松地理解它们并将其与其他平台一起使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM