1

私はあなたが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;
...
4

1 に答える 1

0

Yup, i got the solution. There was missing of an assembly reference. I just added an assembly reference in the web.config file. i.e.,

<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>

That's it.

于 2012-09-23T17:56:40.430 に答える