我有一个控制器:
public IEnumerable<Food> Get()
{
FoodDiaryContext cs = new FoodDiaryContext();
var foodquery = cs.Foods.OrderByDescending(c => c.Description).ToList();
return foodquery;
}
应显示:
{
id:1
description:food
measure:[]
}
但是我收到了一个错误:
输入数据合约名称为“Food_219DB877F13A4776536ADFD2AC86DB1FDBF0E8887DB7E9D658EFE7D9462C3BD5:http://schemas.datacontract.org/2004/07/System.Data.Entity.DynamicProxies”的'System.Data.Entity.DynamicProxies.Food_219DB877F13A4776536ADFD2AC86DB1FDBF0E8887DB7E9D658EFE7D9462C3BD5'。如果您正在使用DataContractSerializer或者将任何静态未知的类型添加到已知类型列表中,请考虑使用DataContractResolver - 例如,使用KnownTypeAttribute属性或将它们添加到传递给序列化程序的已知类型列表中。
public class Food
{
public Food()
{
Measures = new List<Measure>();
}
public int Id { get; set; }
public string Description { get; set; }
public virtual ICollection<Measure> Measures { get; set; }
}
public class Measure
{
public int Id { get; set; }
public string Description { get; set; }
public double Calories { get; set; }
public double Fats { get; set; }
public double Protein { get; set; }
public double Carbohydrates { get; set; }
public virtual Food Food { get; set; }
}
有谁能告诉我我做错了什么?
由于
答案 0 :(得分:0)
感谢您的帮助。 我确实希望你建议并且有效。
public class FoodDiaryContext:DbContext
{
public FoodDiaryContext()
{
this.Configuration.ProxyCreationEnabled = false;
}
public DbSet<Food> Foods { get; set; }
public DbSet<Measure> Measures { get; set; }
}