【发布时间】:2017-08-31 12:56:40
【问题描述】:
这个问题是哪种方法更好还是根本不重要。所以,假设我有一个类 Item 像这样
public class Item
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Category> Categories { get; set; }
}
和引用的一个类别
public class Category
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Item> Items { get; set; }
}
问题是当用户点击一个类别时,该类别中的所有项目都应该输出到一个列表中,该项目的类别也应该如此。
我可以使用类似的东西
_context.Items.Where(c => c.Category.Id == id);
并删除虚拟成员。 我问这个以及为什么我“想要”删除该成员的原因是因为当我使用 WebApi 为客户端获取 Items 表的 Json 数据时,它会输出如下内容:
{
"Id": 1,
"Name": "String",
"Category": [
{
"Id": 1,
"Name": "CName",
"Items": []
},
{
"Id": 1,
"Name": "CName",
"Items": []
}
]
}
因此,对于 Category 模型具有导航属性的唯一问题是,当我请求项目列表时,它还会向我发送此“项目”:[]。 它不会影响我或任何东西,所以我想知道我应该使用 Navigation 方法还是 .Where 方法。或者也许我应该考虑其他一些方法?
【问题讨论】:
-
我个人更喜欢在查询和项目/选择中使用导航属性来选择匿名类或将被序列化的自定义类。
标签: c# entity-framework database-design