2017-12-17 7 views
1

現在、MVC Asp.net 5プロジェクトで作業しています。私はコードファーストデザインを使用しています。ここに私のTrackerModelsファイルがあります。ここでコントローラーの追加プロセスでメタデータエラーを取得できません

public class TrackerModels : DbContext 
{ 
    public TrackerModels() 
     : base("name=TrackerModels") 
    { 
    } 

    public System.Data.Entity.DbSet<ProjectTracker.Models.Project> Projects { get; set; } 
} 

public class Project 
{ 
    [Key] 
    public int Id { get; set; } 

    [Display(Name = "Project")] 
    [Required] 
    public string ProjectName { get; set; } 
} 

public class Group 
{ 
    [Key] 
    public int Id { get; set; } 

    [Display(Name = "Group Name")] 
    [Required] 
    public string GroupName { get; set; } 

    [ForeignKey("ProjectId")] 
    [Required] 
    public virtual Project ProjectId { get; set; } 
} 

は、私は、コントローラを作るしようとしています

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-ProjectTracker-20171207081108.mdf;Initial Catalog=aspnet-ProjectTracker-20171207081108;Integrated Security=True" providerName="System.Data.SqlClient" /> 
<add name="TrackerModels" connectionString="data source=(LocalDb)\MSSQLLocalDB;initial catalog=ProjectTracker.Models.TrackerModels;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" /> 

私の接続文字列です。私が使用している設定については以下を参照してください。

Add Controller Dialog

しかし、自動生成部分の間には、私に起こっている私はここにフォーラムを中心に検索してきたが、私は正確に発見していない、次のエラー

Controller Creation Error

を取得このエラーに一致します。しかし、似たような問題やそれに対応する修正でさえ私にとってはうまくいきません。これには、Key属性、DbSetなどの追加が含まれます。

これがなぜ起こったのかを知るために役立つサイトやリソースがあれば、どなたでも助けてください。

更新1 私はグループクラスを次のようにリファクタリングしましたが、同じエラーメッセージが表示されます。

public class Group 
{ 
    [Key] 
    public int Id { get; set; } 

    [Display(Name = "Group Name")] 
    [Required] 
    public string GroupName { get; set; } 

    [Required] 
    public int ProjectId { get; set; } 


    [ForeignKey("ProjectId")] 
    public virtual Project Project{ get; set; } 
} 

アップデート2 は、私はそれが上記の修正と一緒にエラーではないようにするためにVSを再起動しなければならなかったことが判明します。これはVSを再起動した後に機能しています。

答えて

0

外部キーはintである必要があります。次のようにGroupクラスを再構築してください。

public class Group 
{ 
    [Key] 
    public int Id { get; set; } 

    [Display(Name = "Group Name")] 
    [Required] 
    public string GroupName { get; set; } 

    [Required] 
    public int ProjectId { get; set; } 

    [ForeignKey("ProjectId")] 
    public virtual Project Project { get; set; } 
} 
+0

投稿ごとにコードを再構築しましたが、同じエラーメッセージが表示されます。元の投稿の新しいコードを参照してください。 – Ben

+1

エラーが発生しなくなるためには、VSを再起動しなければなりませんでした。あなたの変更はうまくいった。 – Ben

関連する問題