在实例化实体模型即savechanges时看不到dbcontext方法

时间:2014-02-04 20:28:48

标签: c# wcf entity-framework entity

我正在尝试使用EF实体模型和WCF服务构建解决方案。在wcf服务中,我实例化实体模型(继承DbContext)。我可以很好地使用它进行查询,但是当我尝试保存更改时,我会在调用它时“不包含'SaveChanges'的定义”。有什么想法吗?

这是模型的定义

    namespace ProductsEntityModel
{
    using System;
    using System.Data.Entity;
    using System.Data.Entity.Infrastructure;

    public partial class AdventureWorksEntities : DbContext
    {
        public AdventureWorksEntities()
            : base("name=AdventureWorksEntities")
        {
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }

        public DbSet<Product> Products { get; set; }
        public DbSet<ProductInventory> ProductInventories { get; set; }
    }
}

这里是发生错误的代码...我不应该在Intellisense中看到的只是定义的实体(没有其他方法)

        public bool ChangeStockLevel(string productNumber, short newStockLevel, string shelf, int bin)
    {
        try
        {
            AdventureWorksEntities database = new AdventureWorksEntities();

            int productID = (from Product p in database.Products
                             where string.Compare(p.ProductNumber, productNumber) == 0
                             select p.ProductID).First();

            ProductInventory productInventory = database.ProductInventories.First(
                pi => String.Compare(pi.Shelf,shelf) == 0 &&
                    pi.Bin == bin &&
                    pi.ProductID == productID
                );

            productInventory.Quantity += newStockLevel;

            database.SaveChanges()  //CANNOT SEE SAVECHANGES HERE
        }
        catch
        {
            return false;
        }

        return true;
    }

任何帮助都很有用。这是一本书中的一个例子(如果有什么东西看起来我自己不写): - )

1 个答案:

答案 0 :(得分:1)

我刚想出来了......我不得不在WCF项目中引用EntityFramework.dll: - )