我出于某种原因使用我的$ select = Gallery / Categories查询(投影)时出现错误..错误我得到的是:
“无法在类型'System.Collections.Generic.ICollection`1 [Web.Core.Models.GalleryModel]'上找到属性'类别'。”
这是我目前的模特:
public class GalleryModel : BaseModel
{
public ICollection<CategoryModel> Categories { get; set; }
}
BaseModel只有一些额外的属性,例如
public int Id { get; set; }
public string Name { get; set; }
public DateTime Updated { get; set; }
为什么它可能会抛出此错误的任何想法? 奇怪的是,如果我不添加我的投影,那么它似乎找到了属性并回应了完整的json。
提前致谢!
答案 0 :(得分:0)
Breeze尚不支持继承,但它在我们的路线图上。请在Breeze User Voice上投票赞成此功能,以表明您认为这很重要。我们非常重视这个场所,优先考虑我们接下来要添加的功能。
答案 1 :(得分:0)
我认为可以出于某些原因产生问题。根据我使用breeze与web API和实体框架的经验,我发现你必须以一种非常特殊的方式定义你的类,以便完成所有工作。我认为你问题的主要原因可能是:
public class GalleryModel : BaseModel
{
public **virtual** ICollection<CategoryModel> Categories { get; set; }
}
你应该在关系的定义中使用虚拟。
我也建议你这样做:
public class CategoryModel : BaseModel
{
public int CategoryId {get; set;}
public virtual CategoryModel Category{ get; set; }
}
在这种情况下,内容不是问题,我已经实现了非常类似的东西,它对我有用。 breeze中不支持的容器是当你想根据鉴别器转换不同对象中的表时。
我希望这会对你有所帮助。
答案 2 :(得分:0)
我有类似的问题,“微风无法找到entityType xxx的属性xyz”。 我找到了两个解决方案:
1。)在你的datacontext(或entityManagerFactory ......等)中,删除行
breeze.NamingConvention.camelCase.setAsDefault();
或更好,
2.确保所有js都使用camelCase约定。