0

ASP.Net Web API で新しいプロジェクトを作成しましたが、モデルからコントローラーにデータをプルするのに問題があります。これまでにいくつかのアプローチを試し、http://www.asp.net/web-apiからチュートリアルを読みましたが、モデルにうまくプルされたテーブル データは、エンドポイント アクセス用のコントローラーには到達しません。 . チュートリアルで使用されているモック データは同じ構造で問題なく機能しているため、これらの操作に必要な特定のアプローチはありますか?

インターフェース:

public interface ISkillRepository
{
    IEnumerable<Skill> GetAll();
    Skill Get(int id);
    Skill Add(Skill item);
    void Remove(int id);
    bool Update(Skill item);
}

モデル:

public IEnumerable<Skill> GetAll()
    {
        using (var db = new XXXEntities())
        {
            var skills = db.Skill.ToList();
            return skills;
        }
    }

コントローラ:

static readonly ISkillRepository repository = new SkillsRepository();

    public IEnumerable<Skill> GetAllSkill()
    {
        return repository.GetAll();
    }

モデルはデータベースへの呼び出しに成功し、情報を取得しますが、エンドポイントとしてアクセスされているコントローラーに正常に渡されません。モデル コードをコントローラーにプルすることも正常に実行されますが、要求されたときに 500 がスローされます。戻り値の型が正しくないなどのエラーはありません。どんな助けでも大歓迎です。

4

1 に答える 1

0

EF 4.1 - Code First - JSON Circular Reference Serialization Errorによる解決策は、関係から「仮想」タイプを削除することです。

public /*virtual*/ ICollection<Skill> Skill { get; set; }

また

return accessibility + (accessibility != "private" ? "" : "");

それよりも:

return accessibility + (accessibility != "private" ? " virtual " : "");

モデルジェネレーターを使用する場合。

于 2012-06-18T01:13:13.340 に答える