私はEntity Frameworkの初心者です。Beginner to Entity Framework
私はチュートリアルを使用して学習しています。
アプリケーションは、SQL SERVER EXPRESSデータベースに追加されるはずの2つのフィールドと送信ボタンで構成されています。
データベースとのやり取りはまったくないようです。私は以下を修正して以来、エラーメッセージが表示されないため、どこから開始するのか分かりません。
私のモデル:
public class Customer
{
[Key]
[Required]
public int CustomerCode { get; set; }
[Required]
[StringLength(10)]
[RegularExpression("^[A-Z]{7,7}$")]
public string CustomerName { get; set; }
}
web.configファイル内の私の接続文字列:
<connectionStrings>
<add
name="CustomerDal"
connectionString="Data Source=localhost\SQLExpress;Initial Catalog=MVC2db;Integrated Security=True"
providerName=".NET Framework Data Provider for SQL Server"
/>
マイDbのコンテキスト:
public class CustomerDal : DbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Customer>().ToTable("tblCustomer");
}
public DbSet<Customer> Customer { get; set; }
}
提出アクション:
public ActionResult Submit(
// [ModelBinder(typeof(CustomerBinder))]
Customer obj) //validation runs
{
// Customer obj = new Customer();
// obj.CustomerCode = Request.Form["CustomerCode"];
// obj.CustomerName = Request.Form["CustomerName"];
if (ModelState.IsValid)
{
CustomerDal Dal = new CustomerDal();
Dal.Customer.Add(obj); //in memory
Dal.SaveChanges(); //physical commit
return View("Customer", obj);
}
else
{
return View("EnterCustomer", obj);
}
}
objが
から来EnterCustomer.cshtml、 ' @using(Html.BeginForm( "送信"、 "顧客"、FormMethod.Post)) {
<i>Customer Name : </i> @Html.TextBoxFor(m => m.CustomerName)
<br>
@Html.ValidationMessageFor(x => x.CustomerName)
<br>
<i>Customer Code : </i> @Html.TextBoxFor(m => m.CustomerCode)
<br>
@Html.ValidationMessageFor(x => x.CustomerCode)
<br>
<input id = "Submit1" type = "submit" value = "submit"/>
}
'
SaveChanges中に重複したキーに関する最初のエラーメッセージがあります。いくつかの調査の後、私はこの行をglobal.asaxファイルに追加しました: Database.SetInitializer(new DropCreateDatabaseIfModelChanges());
それ以来、エラーメッセージは表示されませんが、新しいアイテムを入力すると何も起こりません。
「obj」とは何ですか? – Sasha
私たちにエラーを表示していただけますか? – Hemal
CustomerCodeのタイプをIntに変更しようとしたので、エラーが変更されました。 Stringを使用して再試行しても、エラーは次のようになります。「データベースが作成されてから、「CustomerDal」コンテキストをサポートしているモデルが変更されました」データベースを更新するためのコードの最初の移行の使用を検討する – Breece