
using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Data;

using System.Data.EntityClient;

using System.Configuration;

namespace EntityFrameworkDemo

{

/// <summary>

/// 说明:这个类是为了演示.NET中的Entity Framework的用法

/// 作者:周公(周金桥)

/// 日期:2010-05-05

/// </summary>

public class EntityFrameworkCRUD

{

/// <summary>

/// 统计用户总数

/// </summary>

/// <returns></returns>

public int Count()

{

#region 方法二,使用Linq to Entities

using(AspNetStudyEntities entities = new AspNetStudyEntities())

{

//entities.UserInfo.Count<UserInfo>(item => item.Age > 23);//带条件查询

return entities.UserInfo.Count<UserInfo>();

}

#endregion

}

/// <summary>

/// 创建用户

/// </summary>

/// <param name="info">用户实体</param>

/// <returns></returns>

public void Create(UserInfo info)

{

using(AspNetStudyEntities entities = new AspNetStudyEntities())

{

entities.AddToUserInfo(info);

entities.SaveChanges();

}

}

/// <summary>

/// 读取用户信息

/// </summary>

/// <param name="userId">用户编号</param>

/// <returns></returns>

public UserInfo Read( int userId)

{

//AspNetStudyEntities entities = new AspNetStudyEntities();

//return entities.UserInfo.First<UserInfo>(item => item.UserID == userId);

方法二,使用EntityKey #region 方法二,使用EntityKey

using(AspNetStudyEntities entities = new AspNetStudyEntities())

{

EntityKey entityKey = new EntityKey( "AspNetStudyEntities.UserInfo", "UserID",userId);

return entities.GetObjectByKey(entityKey) as UserInfo;

}

#endregion

}

/// <summary>

/// 更新用户信息

/// </summary>

/// <param name="info">用户实体</param>

/// <returns></returns>

public void Update(UserInfo info)

{

using(AspNetStudyEntities entities = new AspNetStudyEntities())

{

UserInfo ui = entities.UserInfo.First<UserInfo>(item => item.UserID == info.UserID);

ui.Age = info.Age;

ui.Email = info.Email;

ui.Mobile = info.Mobile;

ui.Phone = info.Phone;

ui.RealName = info.RealName;

ui.Sex = info.Sex;

ui.UserName = info.UserName;

entities.SaveChanges();

}

}

/// <summary>

/// 删除用户

/// </summary>

/// <param name="userId">用户编号</param>

/// <returns></returns>

public void Delete( int userId)

{

#region 方法二

using(AspNetStudyEntities entities = new AspNetStudyEntities())

{

UserInfo ui = entities.UserInfo.First<UserInfo>(item => item.UserID == userId);

entities.DeleteObject(ui);

entities.SaveChanges();

}

#endregion

}

/// <summary>

/// 删除用户

/// </summary>

/// <param name="userId">用户实体</param>

/// <returns></returns>

public void Delete(UserInfo info)

{

using(AspNetStudyEntities entities = new AspNetStudyEntities())

{

UserInfo ui = entities.UserInfo.First<UserInfo>(item => item.UserID == info.UserID);

entities.DeleteObject(ui);

entities.SaveChanges();

}

}

/// <summary>

/// 获取用户表中编号最大的用户

/// </summary>

/// <returns></returns>

public int GetMaxUserId()

{

using(AspNetStudyEntities entities = new AspNetStudyEntities())

{

int userId=entities.UserInfo.Max<UserInfo>(item => item.UserID);

return userId;

}

}

}

}