惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

M
MIT News - Artificial intelligence
罗磊的独立博客
Hugging Face - Blog
Hugging Face - Blog
Apple Machine Learning Research
Apple Machine Learning Research
Last Week in AI
Last Week in AI
S
SegmentFault 最新的问题
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
美团技术团队
人人都是产品经理
人人都是产品经理
WordPress大学
WordPress大学
The Cloudflare Blog
IT之家
IT之家
雷峰网
雷峰网
小众软件
小众软件
博客园 - 叶小钗
博客园 - 聂微东
爱范儿
爱范儿
博客园 - 司徒正美
博客园 - 三生石上(FineUI控件)
V
Visual Studio Blog
博客园 - 【当耐特】
V
V2EX
博客园_首页
T
Tailwind CSS Blog

博客园 - IT战神

[评论]为什么程序员的社会地位不高?--转载 转载--解决PowerDesigner 反向工程没有列注释(SQLSERVER 2005版) , 获取相对路径 (c#) 数据库优化(转载) asp.net开源项目及学习资料 C#.net同步异步SOCKET通讯和多线程总结 winform的ftp方式上传 - IT战神 - 博客园 ms agent 精灵 带右键菜单c# c#面实题及答案 哲理人生 - IT战神 - 博客园 创业 史玉柱经典语录(转) jsp 面试题 regsvr32 注册大全 DotNet控件开发的资料列表(共享) ie6 和ie7版本带来的一个奇怪的中文乱码问题(长度为奇数时最后一个字符会出现乱码)(原创) uml 图解 jsp cookie 中文乱码 的解决方法 xtree,不错的javascript树
Linq to Entities实例
IT战神 · 2009-08-21 · via 博客园 - IT战神

 SQL Server 2008 带给大家的新特性之一就是 Entity Data Model 。使用它可以很方便的创建数据模型,并且它和Linq有着近乎完美的结合。这次我们就一起来体验下 Entity Data Model 给我们带来的便利。

    先来说下我的系统环境:

    1. Windows Server 2003

    2. VS2008

    3. SQL Server 2008

    4. Pubs2数据库

    注意,使用Entity Data Model 是 SQL Server 2008 带给我们的新特性,所以不能使用SQL Server 2005 来做实验。

    好,下面我们进入正题

1. 启动Visual Studio 2008。

2. 创建一个 Console Application 项目 pubs2edmapp。

image

3. 在右侧Solution Explorer 中,右键点击项目 pubs2edmapp,然后点击Add New Item,在 Add New Item 对话框中选择 ADO.net Entity Data Model。将新建项目命名为pubs2.edmx,然后点击ADD。

image

image 

4. 在Entity Data Model Wizard 对话框中,选择 Generate from database. 然后点击Next。

image 

5. 点击 New Connection. 在 Choose Data Source 对话框中,选择 Microsoft SQL Server 并点击 Continue: 在 Connection Property 对话框中的 Server 文本框中选择数据库实例,然后在 Select or enter a database name 中选择 Pubs 。

image 

image 

image

6. 勾选 Save Entity Connection string in App.Config 并保留默认设置,点击 Next。

image

7. 在 Choose You Database Objects 对话框中,选中 Tables,Views,以及 Stored Procedures.在 Model Namespace 中设置为 pubsModel.点击Finish.

image

8. 此时会出现图形化的 Object Relational Designer 面板。

image

9. 保存模型。

image

Model Browser 中的 Entity 实体。可以看到 Table , Views , Stored Procedures 都被加载了进来。

10. 点击 Build 菜单下的 Build Solution 编译项目。

image

11. 打开 Program.cs 在 Main 方法中,实例化pubsEntities . 将变量命名为 model.

image 

12. 为了能够看到生成的 T-SQL 语句,我们创建一个 helper 类,其中包含一个 helper 方法。

image

注意上面的 using System.Data.Objects; 的引用。Helper 实际上是扩展的Linq,这也是vs08的新特性,有兴趣的自己去研究吧。

13. 打开 ObjectContext 的连接。

image

14. 新建一个名为 SimpleQueries 的 public static 方法,将 pubsEntities 作为输入参数且无返回值。在这个方法中我们使用 Linq 查询。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace pubs2endmapp
{
    class Program
    {
        static void Main(string[] args)
        {
            pubs2endmapp.pubsEntities1 model = new pubsEntities1();
            model.Connection.Open();
            SimpleQueries(model);
            model.Connection.Close();
            Console.Read();
        }

        public static void SimpleQueries(pubsEntities1 model)
        {
            var query1 = from a in model.authors
                         select new { a.au_id, a.au_fname, a.au_lname };
            foreach (var query in query1)
            {
                Console.WriteLine("au_id:{0,-20} au_fname:{1,-20} au_lname:{2,-20}"
                    ,query.au_id,query.au_fname,query.au_lname);
            }
            Console.WriteLine("SQL: " + query1.ToTraceString());
        }
    }
}

完整代码如上。

15. 编译并执行代码。

image

实验到此结束。

现在我们可以很简单的通过 Linq 实现数据库的操作了。

来自 http://www.ittang.com/2009/0413/9173_3.html