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 回答