EntityFramework6 ServerVersion返回无效操作

时间:2017-09-18 13:25:32

标签: entity-framework-4

我首先使用代码来构建Web应用程序。 我有两个主要实体“产品和类别”.DbContext的类和DatabaseIntializer的类如下。

namespace WingtipToys.Models
{
 public class Product
 {
    [ScaffoldColumn(false)]
    public int ProductID { get; set; }

    [Required, StringLength(100), Display(Name = "Name")]
    public string ProductName { get; set; }

    [Required, StringLength(10000), Display(Name = "Product Description"), DataType(DataType.MultilineText)]
    public string Description { get; set; }

    public string ImagePath { get; set; }

    [Display(Name = "Price")]
    public double? UnitPrice { get; set; }

    public int? CategoryID { get; set; }

    public virtual Category Category { get; set; }
}
}

=============================================== ===

namespace WingtipToys.Models
{
public class Category
{
    [ScaffoldColumn(false)]
    public int CategoryID { get; set; }

    [Required, StringLength(100), Display(Name = "Name")]
    public string CategoryName { get; set; }

    [Display(Name = "Product Description")]
    public string Description { get; set; }

    public virtual ICollection<Product> Products { get; set; }
}
}

=============================================== ============

namespace WingtipToys.Models
{
public class ProductContext:DbContext
{
    public ProductContext()
        : base("WingtipToys")
    {

    }

    public DbSet<Category> Categories { get; set; }
    public DbSet<Product> Products { get; set; }
}
}

=============================================== ==========

namespace WingtipToys.Models
{
public class 
 ProductDatabaseInitializer:DropCreateDatabaseIfModelChanges<ProductContext>
{
    protected override void Seed(ProductContext context)
    {
        GetCategories().ForEach(c => context.Categories.Add(c));
        GetProducts().ForEach(p=>context.Products.Add(p));
    }

    private static List<Category> GetCategories()
    {
        var categories = new List<Category> {
            new Category
            {
                CategoryID = 1,
                CategoryName = "Cars"
            },
            new Category
            {
                CategoryID = 2,
                CategoryName = "Planes"
            },
            new Category
            {
                CategoryID = 3,
                CategoryName = "Trucks"
            },
            new Category
            {
                CategoryID = 4,
                CategoryName = "Boats"
            },
            new Category
            {
                CategoryID = 5,
                CategoryName = "Rockets"
            },
        };

        return categories;
    }

    private static List<Product> GetProducts()
    {
        var products = new List<Product> {
            new Product
            {
                ProductID = 1,
                ProductName = "Convertible Car",
                Description = "This convertible car is fast! The engine is powered by a neutrino based battery (not included)." + 
                              "Power it up and let it go!", 
                ImagePath="carconvert.png",
                UnitPrice = 22.50,
                CategoryID = 1
           },
            new Product 
            {
                ProductID = 2,
                ProductName = "Old-time Car",
                Description = "There's nothing old about this toy car, except it's looks. Compatible with other old toy cars.",
                ImagePath="carearly.png",
                UnitPrice = 15.95,
                 CategoryID = 1
           },
            new Product
            {
                ProductID = 3,
                ProductName = "Fast Car",
                Description = "Yes this car is fast, but it also floats in water.",
                ImagePath="carfast.png",
                UnitPrice = 32.99,
                CategoryID = 1
            },
            new Product
            {
                ProductID = 4,
                ProductName = "Super Fast Car",
                Description = "Use this super fast car to entertain guests. Lights and doors work!",
                ImagePath="carfaster.png",
                UnitPrice = 8.95,
                CategoryID = 1
            },
            new Product
            {
                ProductID = 5,
                ProductName = "Old Style Racer",
                Description = "This old style racer can fly (with user assistance). Gravity controls flight duration." + 
                              "No batteries required.",
                ImagePath="carracer.png",
                UnitPrice = 34.95,
                CategoryID = 1
            },
            new Product
            {
                ProductID = 6,
                ProductName = "Ace Plane",
                Description = "Authentic airplane toy. Features realistic color and details.",
                ImagePath="planeace.png",
                UnitPrice = 95.00,
                CategoryID = 2
            },
            new Product
            {
                ProductID = 7,
                ProductName = "Glider",
                Description = "This fun glider is made from real balsa wood. Some assembly required.",
                ImagePath="planeglider.png",
                UnitPrice = 4.95,
                CategoryID = 2
            },
            new Product
            {
                ProductID = 8,
                ProductName = "Paper Plane",
                Description = "This paper plane is like no other paper plane. Some folding required.",
                ImagePath="planepaper.png",
                UnitPrice = 2.95,
                CategoryID = 2
            },
            new Product
            {
                ProductID = 9,
                ProductName = "Propeller Plane",
                Description = "Rubber band powered plane features two wheels.",
                ImagePath="planeprop.png",
                UnitPrice = 32.95,
                CategoryID = 2
            },
            new Product
            {
                ProductID = 10,
                ProductName = "Early Truck",
                Description = "This toy truck has a real gas powered engine. Requires regular tune ups.",
                ImagePath="truckearly.png",
                UnitPrice = 15.00,
                CategoryID = 3
            },
            new Product
            {
                ProductID = 11,
                ProductName = "Fire Truck",
                Description = "You will have endless fun with this one quarter sized fire truck.",
                ImagePath="truckfire.png",
                UnitPrice = 26.00,
                CategoryID = 3
            },
            new Product
            {
                ProductID = 12,
                ProductName = "Big Truck",
                Description = "This fun toy truck can be used to tow other trucks that are not as big.",
                ImagePath="truckbig.png",
                UnitPrice = 29.00,
                CategoryID = 3
            },
            new Product
            {
                ProductID = 13,
                ProductName = "Big Ship",
                Description = "Is it a boat or a ship. Let this floating vehicle decide by using its " + 
                              "artifically intelligent computer brain!",
                ImagePath="boatbig.png",
                UnitPrice = 95.00,
                CategoryID = 4
            },
            new Product
            {
                ProductID = 14,
                ProductName = "Paper Boat",
                Description = "Floating fun for all! This toy boat can be assembled in seconds. Floats for minutes!" + 
                              "Some folding required.",
                ImagePath="boatpaper.png",
                UnitPrice = 4.95,
                CategoryID = 4
            },
            new Product
            {
                ProductID = 15,
                ProductName = "Sail Boat",
                Description = "Put this fun toy sail boat in the water and let it go!",
                ImagePath="boatsail.png",
                UnitPrice = 42.95,
                CategoryID = 4
            },
            new Product
            {
                ProductID = 16,
                ProductName = "Rocket",
                Description = "This fun rocket will travel up to a height of 200 feet.",
                ImagePath="rocket.png",
                UnitPrice = 122.95,
                CategoryID = 5
            }
        };

        return products;
    }
}
}

此处为我的连接字符串

<add name="WingtipToys"
  connectionString="Data Source=hanaa-pc\hanaa;Initial Catalog=wingtiptoys;Integrated Security=True"
   providerName="System.Data.SqlClient"/>

我在global.asax中调用databaseintializer

namespace WingtipToys
{
public class Global : HttpApplication
{
    void Application_Start(object sender, EventArgs e)
    {
        // Code that runs on application startup
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);

        Database.SetInitializer(new ProductDatabaseInitializer());             
    }
}
}
主文件中的

我使用listview从db获取所有类别:

 public IQueryable<Category> GetCategories()
    {
        var _db = new ProductContext();

            IQueryable<Category> query = _db.Categories;
            return query;

    }

当我在上下文类中运行调试项目时,我从观察窗口获取了这个: enter image description here

我想知道为什么总会发生以及如何解决这个问题。 感谢。

0 个答案:

没有答案