0

モデルの戻り型IEnumerable<>に問題があり、理解を深めようとしています。

モデルビューがあります:

public class Photoview
{
    public int IdPhoto { get; set; }
    public DateTime Date { get; set; }
    public string Nom { get; set; }
    public int Category { get; set; }
    public string Lien { get; set; }
    public bool Actif { get; set; }
    public string Description { get; set; }
}

データベースからデータを取得するモデル:

    public IEnumerable<Photoview> GetAllPhotos()
    {
        var a = from o in _ajAentities.Photos
                select o;

        return a.ToList();
    }

ただし、コンパイルエラーが発生しています:タイプGeneric.Listをに変換できません

データベースのテーブルは次のとおりです。

id_photo    int         Unchecked
date    smalldatetime   Checked
nom         nvarchar(250)   Checked
categorie   int         Checked
lien    nvarchar(250)   Checked
actif   bit         Checked
description nvarchar(800)   Checked

私の質問は次のとおりです。GetAllPhotos()のLinqクエリをIEnumerable <>タイプとして返​​すことができるようにするにはどうすればよいですか?

ありがとう

4

2 に答える 2

1

_ajAentities.PhotosはタイプのようIEnumerable<Models.DB.Photo>ですが、メソッドからを返そうとしていますIEnumerable<Photoview>

したがって、最初の可能性は、データベースエンティティのリターンタイプと一致するようにリターンタイプを修正することです。

public IEnumerable<Photo> GetAllPhotos()
{
    var a = 
        from o in _ajAentities.Photos
        select o;
    return a.ToList();
}

2番目の可能性は、2つのタイプ間でマッピングすることです。

public IEnumerable<Photoview> GetAllPhotos()
{
    var a = 
        from o in _ajAentities.Photos
        select new Photoview
        {
            IdPhoto = o.Id,
            Date = o.Date,
            Nom = o.Nom,
            ....
        };

    return a.ToList();
}

AutoMapperを調べて、ドメインモデルとビューモデル間のマッピングを実行することもできます。

于 2012-05-27T06:56:27.047 に答える
0

これを試して:

var a = (IEnumerable<Object>)
        from o in _ajAentities.Photos
        select o;

LinqIQueryableから返されたをキャストします。タイプコレクションに変換するため、をIEnumerable使用しないでください。変数を返すだけです。.ToList()List<object>

于 2020-07-07T02:06:12.640 に答える