Entity Framework自用的DataBase基类

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using Model;
 6 using System.Data.Objects.DataClasses;
 7
 8 namespace Work
 9 {
10     public class DataBase<T> where T : EntityObject
11     {
12         protected OfficeAnywhereEntities entities = new OfficeAnywhereEntities();
13
14         /// <summary>
15         /// 添加
16         /// </summary>
17         /// <param name="t"></param>
18         /// <returns></returns>
19         public bool Add(T t)
20         {
21             entities.AddObject(typeof(T).Name, t);
22             return SaveChanges() > 0;
23         }
24
25         /// <summary>
26         /// 执行
27         /// </summary>
28         /// <returns></returns>
29         private int SaveChanges()
30         {
31             try
32             {
33                 return entities.SaveChanges();
34             }
35             catch (Exception e)
36             {
37                 throw e.InnerException;
38             }
39
40         }
41
42         /// <summary>
43         /// 寻找对象
44         /// </summary>
45         /// <param name="Guid"></param>
46         /// <returns></returns>
47         private T FindByGuid(string Guid)
48         {
49             T t = null;
50             entities.CreateObjectSet<T>().ToList().ForEach(p => {
51                 if (p.EntityKey.EntityKeyValues[0].Value.ToString() == Guid)
52                     t = p;
53             });
54             return t;
55         }
56
57         /// <summary>
58         /// 删除
59         /// </summary>
60         /// <param name="Guid"></param>
61         /// <returns></returns>
62         public bool DelByGuid(string Guid)
63         {
64             T t = FindByGuid(Guid);
65             if(t!=null)
66             entities.DeleteObject(t);
67             return SaveChanges() > 0;
68         }
69
70         /// <summary>
71         /// 更新
72         /// </summary>
73         /// <param name="Guid"></param>
74         /// <param name="act"></param>
75         /// <returns></returns>
76         public bool UpdateByGuid(string Guid, Action<T> act)
77         {
78             T t = FindByGuid(Guid);
79             act(t);
80             return SaveChanges() > 0;
81         }
82
83         /// <summary>
84         /// 列表
85         /// </summary>
86         /// <returns></returns>
87         public List<T> GetList()
88         {
89             return entities.CreateObjectSet<T>().ToList();
90         }
91     }
92 }
时间: 2024-10-05 05:07:11

Entity Framework自用的DataBase基类的相关文章

Entity Framework系列之DataBase First

第一步 新建数据库和表 USE [TestDB] GO /****** Object: Table [dbo].[T_User] Script Date: 01/14/2015 20:27:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[T_User]( [Id] [int] IDENTITY(1,1) NOT NULL, [Name] [nvarchar](50) NULL, [Pa

Entity Framework Code First 映射继承关系

转载 http://www.th7.cn/Program/net/201301/122153.shtml Code First如何处理类之间的继承关系.Entity Framework Code First有三种处理类之间继承关系的方法,我们将逐一介绍这三种处理方法. 1.Table Per Hierarchy(TPH): 只建立一个表,把基类和子类中的所有属性都映射为表中的列. 2.Table Per Type(TPT): 为基类和每个子类建立一个表,每个与子类对应的表中只包含子类特有的属性对

ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库

在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类.指定数据库连接字符串以及创建一个数据库.最后,我们还将添加视图和控制器来管理和显式产品和分类数据. 注意:如果你想按照本章的代码编写示例,你必须完成第一章或者直接从www.apress.com下载第一章的源代码. 2.1 添加模型类 Entity Framework的代码优先模式允许我们从模型类创

Asp.Net MVC 模型(使用Entity Framework创建模型类) - Part.1

这篇教程的目的是解释在创建ASP.NET MVC应用程序时,如何使用Microsoft Entity Framework来创建数据访问类.这篇教程假设你事先对Microsoft Entity Framework没有任何的了解.读完本篇教程,你将会理解如何使用Entity Framework来选择.插入.更新和删除数据库记录. Microsoft Entity Framework是一个对象关系映射(O/RM)工具,它能你让自动从数据库生成数据访问层.Entity Framework能够使你免于手工

Entity Framework Database First

Entity Framework > Get Started > Database First 必备条件 要完成本演练,需要安装 Visual Studio 2010 或 Visual Studio 2012. 如果使用的是 Visual Studio 2010,还需要安装 NuGet. 1.创建现有数据库 通常情况,是面向一个已创建的现有数据库,但在本演练中,我们需要创建一个数据库进行访问. 随 Visual Studio 安装的数据库服务器根据所安装的 Visual Studio 的版本而

Asp.Net MVC 模型(使用Entity Framework创建模型类)

这篇教程的目的是解释在创建ASP.NET MVC应用程序时,如何使用Microsoft Entity Framework来创建数据访问类.这篇教程假设你事先对Microsoft Entity Framework没有任何的了解.读完本篇教程,你将会理解如何使用Entity Framework来选择.插入.更新和删除数据库记录. Microsoft Entity Framework是一个对象关系映射(O/RM)工具,它能你让自动从数据库生成数据访问层.Entity Framework能够使你免于手工

LINQ之路 9:LINQ to SQL 和 Entity Framework(上)

在上一篇中,我们从理论和概念上详细的了解了LINQ的第二种架构“解释查询”.在这接下来的二个篇章中,我们将使用LINQ to SQL和Entity Framework来实践“解释查询”,学习这些技术的关键特性.在本系列文章中,我不准备事无巨细的讨论LINQ to SQL和Entity Framework的方方面面,毕竟那样需要太多的篇幅,也会让我们从LINQ上面转移注意力,况且,园子里也有不少介绍LINQ to SQL和Entity Framework的好文章.我们在此关注的是LINQ to S

Entity Framework 6 Recipes 2nd Edition(13-5)译 -&gt; 使POCO的修改追踪更高

问题 你正在使用POCO,你想提高修改跟踪的性能,同时使内存消耗更少.另外,你想通过EF的CodeFirst方式来实现. 解决方案 假设你有一个关于Account(帐户)和相关的Payments(支付)的模型,如Figure 13-7 Figure 13-7. A model with an Account entity and a related Payment   首先,本例用EF的CodeFirst方式实现,在Listing 13-16,我们创建实体类:Account和Payment.为达

Entity Framework 6 Recipes 2nd Edition(13-3)译 -&gt; 为一个只读的访问获取实体

问题 你想有效地获取只是用来显示不会更新的操作的实体.另外,你想用CodeFirst的方式来实现 解决方案 一个非常常见行为,尤其是网站,就是只是让用户浏览数据.大多数情况下,用户不会更新数据.在这种情况下,你可以通过避开上下文的缓存和修改跟踪来提高代码性能,你可以非常简单地使用AsNoTracking方法来实现. 让我们假设你一个应用程序来管理doctor(医生)的appointments(预约),你的模型如下图Figure 13-5. Figure 13-5. A model for man