2016-05-28 54 views
1

私のコードはSolution.Models.WorkerにあるこのEntityTypeのキーを定義します。EntityType 'Worker'にはキーが定義されていません。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Data.Entity; 

namespace Solution.Models 
{ 
    public class Worker 
    { 
     public int AsmensKodas { get; set; } 
     public string Vardas { get; set; } 
     public string Pavarde { get; set; } 
     public DateTime GimimoData { get; set; } 
     public string Adresas { get; set; } 
     public bool AktyvumoPozymis { get; set; } 
    } 

    public class WorkerDBContext : DbContext 
    { 
     public DbSet<Worker> Worker { get; set; } 
    } 
} 

私は

<connectionStrings> 
    <add name="WorkerDBContext" 
     connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Workers.mdf;Integrated Security=True" 
     providerName="System.Data.SqlClient"/> 
</connectionStrings> 

を追加することにより、web.configファイルを変更し、私が使用して、ビューとMVC 5コントローラ」でコントローラを追加しようとすると、エンティティフレームワーク "

  • モデルクラス:Worker(Solution.Models)
  • データコンテキストクラス:WorkerDbContext(Solution.Models)
  • コントローラ名:WorkersController

私が選択したコードジェネレータを実行中にエラーが発生しました

というエラーメッセージが表示されます。
'' Solution.Models.Worker 'のメタデータを取得できません。モデル生成中に1つ以上の検証エラーが検出されました。
Solution.Models.Worker :: EntityType 'Worker'にはキーが定義されていません。
このEntityTypeのキーを定義します。
ワーカー:EntityType:EntitySet 'Workers'は、キーが定義されていない 'Worker'タイプに基づいています。

何をすべきか、私が間違っていることはありますか?

答えて

1

モデルのプロパティの1つはKeyである必要があります。そのため、プロパティの1つの上に[Key]アノテーションを配置します。

public class Worker 
{ 
    [Key] 
    public int AsmensKodas { get; set; } 
    public string Vardas { get; set; } 
    public string Pavarde { get; set; } 
    public DateTime GimimoData { get; set; } 
    public string Adresas { get; set; } 
    public bool AktyvumoPozymis { get; set; } 

} 

はちょうどあなたのusingディレクティブに次の行を追加することを忘れないでください:

using System.ComponentModel.DataAnnotations; 

また、あなたが名前IdであなたのModelでプロパティを持っている場合、あなたがする必要はありません。このようなそれに[Key]属性を追加します。

+0

既に試してみましたが、うまくいきませんでした(同じエラーメッセージが表示されます) – ArtP

+0

喜び、同じエラーメッセージ... \ – ArtP

+1

解決策を再確認してください。手作業でクリーンアップして、それぞれのプロジェクトディレクトリに入り、 'bin'と' obj'フォルダをすべて削除してから再構築してください。 – gmiley

関連する問題