2016-12-15 30 views
0

私はそれについて多くの質問があることを知っていますが、私はそれらの20のように読んで、私のための答えを見つけることができませんでした。エラーが発生しました:私はこのエラーエンティティフレームワーク:エントリの更新中にエラーが発生しました

「タイプ の例外 『System.Data.Entity.Infrastructure.DbUpdateException』は EntityFramework.dllで発生したが、ユーザーコードで処理されなかった

追加情報を持っていますエントリを更新しています。 詳細については、内部例外を参照してください。

私はそれをのInnerExceptionに行く

"無効なオブジェクト名 'dbo.Samochodies'。" と言います

。私は私が私のプログラムのいずれかの「Samochodies」を持っていないため、地獄はこれが何であるかを知らない...とにかく、それはコードです:

CarsController.cs

public ActionResult Create([Bind(Include = "Id,Brand,Model,Price,Bought,Sold")] Samochody car) 
    { 
     if (ModelState.IsValid) 
     { 
      baza.Cars.Add(car); 
      baza.SaveChanges(); //error here 
      return RedirectToAction("Index"); 
     } 
     return View(car); 
    } 

Samochodyクラス

public class Samochody 
{ 
    public int Id { get; set; } 
    public string Brand { get; set; } 
    public string Model { get; set; } 
    public decimal Price { get; set; } 
    public DateTime Bought { get; set; } 
    public DateTime Sold { get; set; } 

    public class CarDBCtxt : DbContext 
    { 
     public DbSet<Samochody> Cars { get; set; } 
    } 
+0

'dbo.Samochodies'はEFがDBにマップしようとしているテーブル名です。テーブルの本当の名前は何ですか – octavioccl

+0

私はそれを指定しませんでした。私はコードファーストを使用しています(私は思う?:D)が、おそらく私は何か間違っているのですか? –

+0

あなたのDBはまだ存在していませんか? – octavioccl

答えて

0

既存のDBを使用している場合、エンティティをマッピングする際にテーブル名を指定しないと、EFはデータベース内でSamochodiesという名前のテーブルを検索しようとします。あなたは、エンティティの名前を変更したためかもしれない例外は、今

[Table("YourTableName")] 
public class Samochody 
{ 
    //... 
} 

:一つの解決策は、実際のテーブル名を指定するTable属性を使用することができます。このEFのようなケースには、あなたがこの種の問題にあなたがモデルを変更するたびに解決するのに役立つ可能性があり、いくつかの初期化子を持って、あなたのケースでは、それは次のようになります。

public class CarDBCtxt : DbContext 
{ 
    public DbSet<Samochody> Cars { get; set; } 

    public CarDBCtx(): base("CarDBCtxt") 
    { 
     Database.SetInitializer(new DropCreateDatabaseIfModelChanges<CarDBCtxt>()); 
    } 
} 

あなたは初期化子についての詳細を学びたいのであれば、取りますこのlinkを見てください。

+0

CarDbCtxに予期せぬトークン ":"があり、DropCreateDatabaseIfModelChangesに1つの型引数が必要であるというエラーが表示されます。 –

+0

mdfファイルがAppDataフォルダに表示されていない可能性がありますか?チュートリアルでは、すべてのコードの後に​​ありました –

+0

'DropCreateDatabaseIfModelChanges'は一般的です – octavioccl

関連する問題