ASP.Net MVCの学習で忙しいので、最近Visual Studio2010ProfessionalにMVC4をインストールしました。私はこの例を試していました:
http://www.luisrocha.net/2010/11/creating-composite-keys-using-code.html
ただし、RelatedTo属性はVisualStudioでは見つかりません。この質問を読んだところ、これはEntityFramework4.1がインストールされていないことが原因である可能性があります。System.Data.Entity.dllのバージョン番号を確認したところ、バージョン4.0.0.0、ランタイムバージョンv4.0.30319でした。したがって、これは私のコンピューターにインストールされているEFのバージョン4.0のように見えます。私はこれについて間違っているかもしれません...だから誰かが私がそうなら私を訂正してください。
ここからEF4.1をダウンロードしてインストールしましたが、 System.Data.Entity.dllのバージョン番号が変更されていないようで、RelatedTo属性がまだ機能していません。インストールの何が問題になっているのか、どうすれば修正できるのか、誰か知っていますか?
アップデート:
このサイトの指示に従ってnugetを使用してEntityFrameworkをインストールしました。コンソールには、EntityFramework 5.0.0-rcがインストールされていると表示されましたが、 System.Data.Entity.dllのバージョンは変更されていないようです。
いいえ、インテリセンスがそれを含めるように指示しなかったため、 System.Data.Entityの使用を含めませんでした。System.ComponentModel.DataAnnotationsを含め、System.ComponentModel.DataAnnotations.Schemaを使用しました。これは、これらがKey属性とColumn属性で必要だったためです。Intellisenseは、「'RelatedTo'のクラスを生成する」ように要求しますが、 System.Data.Entityを使用して追加しても変更されません。
これは、質問でリンクしたチュートリアルのコードですが、それを求める人のための私のコードです。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity;
namespace Example
{
public class PlaylistTrack
{
[Key, Column(Order = 1)]
public int PlaylistId { get; set; }
[Key, Column(Order = 2)]
public int TrackId { get; set; }
[RelatedTo(ForeignKey = "PlaylistId")]
public Playlist Playlist { get; set; }
[RelatedTo(ForeignKey = "TrackId")]
public Track Track { get; set; }
}
}