ADO.NET Entities Framework 的增删查改(我自己写的,可以作为范例)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Objects;




namespace SportsStore.Models.Abstract
{
    public class ProductRepository : IProductRepository
    {
        SportsStoreEntities db = new SportsStoreEntities();

        //查询全部
        public IQueryable<Product> Products()
        {
            return db.Product;
        }

        //根据名称来查询
        public ObjectSet<Product> GetProductsByName(string _name)
        {

            return (ObjectSet<Product>)db.Product.Where(p => p.Name.Contains(_name));
        }

        //根据ID来查询
        public ObjectQuery<Product> GetProductsByID(int _id)
        {
           return (ObjectQuery<Product>) db.Product.Where(p => p.ProductID == _id);
        }

        //添加一个实体
        public bool AddProdcut(Product _product)
        {
            db.Product.AddObject(_product);

            if (db.SaveChanges() > 0)
            {

                return true;
            }
            else
            {
                return false;
            }
        }

        //删除一个实体
        public bool DeleteProduct(int _id)
        {
            db.Product.DeleteObject(db.Product.Where(p=>p.ProductID==_id).Single());

            if (db.SaveChanges() > 0)
            {

                return true;
            }
            else
            {
                return false;
            }
        }

        //更新Product的Name属性,如果要修改多个属性,类似在 ose.SetModifiedProperty("Name")加上其他的
        public bool UpdatePruduct(Product _product)
        {
            db.Product.Attach(_product);

            ObjectStateEntry ose = db.ObjectStateManager.GetObjectStateEntry(_product);

            ose.SetModified();

            ose.SetModifiedProperty("Name");
            
            if (db.SaveChanges() > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    }
}

  

posted @ 2012-08-19 17:21  Buu  阅读(232)  评论(0编辑  收藏  举报