我正忙于学习 ASP.Net MVC,所以我最近在 Visual Studio 2010 Professional 上安装了 MVC 4。我正在尝试这个例子:
http://www.luisrocha.net/2010/11/creating-composite-keys-using-code.html
但是Visual Studio 找不到RelatedTo属性。我在这个问题上读到这可能是由于未安装 Entity Framework 4.1 造成的。我检查了System.Data.Entity.dll的版本号,它给出了版本 4.0.0.0,运行时版本 v4.0.30319。所以在我看来,这似乎是安装在我的计算机上的 EF 4.0 版。我可能在这方面是错的......所以如果我是,请有人纠正我。
我从这里下载了 EF 4.1并安装了它,但System.Data.Entity.dll的版本号似乎没有改变,并且RelatedTo属性仍然不起作用。任何人都知道安装出了什么问题以及我该如何解决?
更新:
我按照该站点上的说明使用nuget安装了Entity Framework ,控制台说它安装了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; }
}
}