私はあなたがmvcmusicstore.codeplex.comでオンラインMvcMusicStoreアプリケーションチュートリアルについて知っていると思います。このプロジェクトは、MVC3を使用したCompact Editionではなく、MS SQl Server 2008ProfessionalEditionで開発しています。そして、私はモデルクラスとしてSQLクラスへのリンクを使用しました。いつものように動いていました。ただし、ビューファイルBrowse.cshtml内のコード
@model MvcMusicStore.Models.Genre
@{
ViewBag.Title = "Browse";
}
<h2>Genre : @Model.Name</h2>
<ul>
@foreach(var album in @Model.Albums)
{
<li>@album.Title</li>
}
</ul>
コンパイルエラーメッセージを次のように生成します。
Refer.cshtml(7,2):エラーCS1579:foreachステートメントはタイプ「System.Data.Linq.EntitySet1」の変数を操作できません1<MvcMusicStore.Models.Album>' because 'System.Data.Linq.EntitySet
「GetEnumerator」のパブリック定義が含まれていません
それで、それを取り除くための解決策を私にくれませんか。ありがとうございました。また、ジャンルクラス
[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Genres")]
public partial class Genre : INotifyPropertyChanging, INotifyPropertyChanged
{
private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
private int _GenreId;
private string _Name;
private string _Description;
private EntitySet<Album> _Albums;
...
アルバムクラス、
[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Albums")]
public partial class Album : INotifyPropertyChanging, INotifyPropertyChanged
{
private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
private int _AlbumId;
private int _GenreId;
private int _ArtistId;
private string _Title;
private decimal _Price;
private string _AlbumArtUrl;
private EntitySet<Cart> _Carts;
private EntitySet<OrderDetail> _OrderDetails;
private EntityRef<Artist> _Artist;
private EntityRef<Genre> _Genre;
...