私はコースの一部として練習を与えられました。データベースやモデルを持たないASP.NET MVCアプリケーションを作成することでしたコードを使用して1つを生成します。あるセクションでは、以下に示すコードがいくつかあります。 私は既に| IDisposable
をクラスに追加しようとしましたが、それでも上記のエラーが発生しました。クラスタイプがIDisposableに変換されず、.SaveChangesメソッドが存在しません
.SaveChangesが機能しないのは、エンティティフレームワークが見つからないためですが、私はプロジェクトステートメントに参照を追加するだけでなく、System.Data.Entity
をusingステートメントに追加しようとしていると聞いたことがあります。
これは、問題のコードです:
public class HomeController : Controller
{
public ActionResult Index()
{
Models.Product p = new Models.Product();
p.Product_Code = "SOFT549";
p.Product_Name = "Book";
using (var db = new Models.StoreDB())
{
db.products.Add(p);
db.SaveChanges();
ViewBag.Message = "The number of products so far is " + db.products.Count().ToString();
}
return View();
}
}
これは、製品のクラスです:
public class Product
{
public int ProductId { get; set; }
public string Product_Code { get; set; }
public string Product_Name { get; set; }
public float Price { get; set; }
public int Stock { get; set; }
public Product()
{
}
}
そして、これは私が言われると仮定空白DbContextから継承StoreDBクラスで、あまりにも後で何かを追加するが、シート上で私は与えられたコードは、この状態では間違いなくコンパイルする必要がありますコードを実行するように頼まれた。
public class StoreDB: DbContext
{
public DbSet<Product> products { get; set; }
public DbSet<Order> orders { get; set; }
public DbSet<Order_Line> order_lines { get; set; }
}
そして、念のためにあなたにも順番クラスが必要です。
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
public class Order
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Order_Number { get; set; }
public DateTime Order_Date { get; set; }
public virtual ICollection <Order_Line> Order_Lines { get; set; }
public Order()
{
}
}
そして、ここではエラーが念のために再度詳細にされています。
「StoreDB」:usingステートメントで使用されるタイプは、「StoreDBが」「のSaveChanges」となし拡張メソッド「のSaveChanges」受け入れるための定義が含まれていない「System.Double」
に暗黙的に変換可能でなければなりません型「StoreDB」の最初の引数が見つかりませんでしたあなたはNugetパッケージマネージャを使用して
Entity Framework
への参照を追加する必要があります
ていますか? – Igor
http://idownvotedbecau.se/imageofanexception/ –
@Igorこれは私がこのソリューションの下で作成した唯一のプロジェクトであり、見ることのできるクラスは他のクラスを除くすべてのコードとそれらはすべて同じ名前空間に従っていることがわかります。 – Aelux