web-dev-qa-db-ja.com

`DatabaseGenerated(DatabaseGeneratedOption.Identity)`がMVC4で機能しない理由

MVC3プロジェクトをMVC4に移動しようとしましたが、このモデルを移動したい場合:

_public class Link
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Guid ID { get; set; }

    [DisplayName("Shorted URL")]
    public string SURL { get; set; }

    [DisplayName("General Link")]
    public string OriginalURL { get; set; }

    [DisplayName("Click Count")]
    public int ClickCount { get; set; }
}

public class LinkDBContext : DbContext
{
    public DbSet<Link> Links { get; set; }
}
_

[System.ComponentModel.DataAnnotations.(DatabaseGeneratedOption.Identity)]属性でエラーが発生しました。何が問題なのかわかりません。誰か知っている?!?

更新

これらはエラーです:

タイプまたは名前空間の名前 'DatabaseGeneratedAttribute'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)

タイプまたは名前空間の名前「DatabaseGenerated」が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)

11

DatabaseGeneratedAttributeは、.NET4.5のSystem.ComponentModel.DataAnnotations.Schema名前空間属性にあります

25

.net 4でこの属性を使用する場合は、プレリリースバージョンのEntityFramework 6(またはナイトリービルド)を使用して、Manage NuGet Pakagesウィンドウで、ウィンドウ上部のドロップダウンからInclude Prereleaseを選択します。

ナイトリービルドに更新するには、Pakage Manager Settingsに次のパッケージソースを追加します。

http://www.myget.org/F/aspnetwebstacknightly/

完全なガイドについては、 GitHubのEF を参照してください。

2
Mahmoodvcs

フレームワークを4.5以下から4.5.1に変更してから、Entity Framework 6 +をインストールする必要があります(場合によっては)。

1
d4c0d312