ADO.NET 4 快速上手(9)——实体框架(Entity Framework)

本文介绍了ADO.NET 4中的Entity Framework,包括术语解释如模型、实体和实体集合,三层架构(概念层、存储层、映射层),以及使用步骤,如模型构建、对象生成和上下文实例化。通过向导设计模型,可以针对SQL Server数据库生成实体数据模型,同时涵盖数据查询、修改、添加和删除操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

九、    实体框架(Entity Framework)

1.    术语

模型:数据模型,用于生成源代码类,xml保存
实体(entity):数据记录、行,对应于DataRow。
实体集合(entities):对应于DataTable。
属性:对应于字段。
关联:对应于DataRelation,但是双向访问的。
导航属性:对应于外键关联(导航)。
实体集:对应于表、视图。

2.    层次

A.    概念层

概念架构定义语言(CSDL)定义,xml格式,.csdl文件。

B.    存储层

也称逻辑层,标明数据库级元素。存储架构定义语言(SSDL)定义,xml格式,ssdl文件。

C.    映射层

连接概念层与存储层,使用映射规范语言(MSL)做映射,指明概念模型中的实体、属性和关联如何绑定到存储模型中的特定项目。.msl文件描述。

3.    使用步骤

A.    构建模型

Visual Studio利用向导,生成.edmx文件,包含上述三层文件内容。

B.    从模型生成对象

C.    实例化上下文

上下文用于访问模型内容,是System.Data.Ojbects.ObjectContext的实例,是<EntityContainer>的实例化。

4.    向导设计模型

为项目添加“ ADO.NET实体数据模型”项(注Visual Studio 2010实体框架生成工具支持SQL Server 2005及更高版本数据库):


更改模型不会传回底层数据库。改后保存项目,可重新生成对象层。

数据库有变动,更新模型,右击模型空白处:

5.    数据查询

using (UserEntities context = new UserEntities())
{
    ObjectSet<tb_User> results = context.tb_User;
    foreach (tb_User user in results)
    {
        Console.WriteLine("name:        " + user.Username);
        Console.WriteLine("password:    " + user.password);

        Console.WriteLine();
    }
}

6.    数据修改

using (UserEntities context = new UserEntities())
{
    ObjectSet<tb_User> results = context.tb_User;
    foreach (tb_User user in results)
    {
        user.password = "new password";
    }

    context.SaveChanges();
}

7.    数据添加

using (UserEntities context = new UserEntities())
{
    tb_User user = new tb_User();
    user.Username = "新用户";
    user.password = "初始密码";
                
    context.tb_User.AddObject(user);
    // 或:
    // context.AddObject("tb_user", user);

    context.SaveChanges();
}

8.    数据删除

using (UserEntities context = new UserEntities())
{
    tb_User user = null;
    foreach (tb_User u in context.tb_User)
    {
        if (u.Username == "新用户")
        {
            user = u;
        }
    }

    if (user != null)
    {
        context.tb_User.DeleteObject(user);
    }
                
    context.SaveChanges();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值