我目前正在构建一个带有 Web API 和淘汰赛等的 SPA。到目前为止,我编写了自己的简单数据上下文,它工作得很好。我碰到了微风,认为这可能值得一试。特别是我希望在实体之间的导航上获得一种更简单的方法......
用微风加载实体或单个实体工作正常。使用导航属性似乎不起作用。导航属性始终为空,即使它是一对多的关系。
这是我的模型(简化):
public class WorkdayHours
{
public int Id { get; set; }
public bool IsWorkDay { get; set; }
...
public Byte WeekDay { get; set; }
}
public class Service
{
public int Id { get; set; }
public string DisplayName { get; set; }
public virtual ICollection<WorkdayHours> BookableDays { get; set; }
}
public class Employee
{
public int Id { get; set; }
public string DisplayName { get; set; }
public virtual ICollection<WorkdayHours> BookableDays { get; set; }
}
public class Shop
{
public int Id { get; set; }
public string DisplayName { get; set; }
public virtual ICollection<WorkdayHours> BookableDays { get; set; }
}
然后我在我的 SPA 中获取实体服务,如下所示:
var query = EntityQuery
.from('Services')
.where('id', 'eq', serviceId)
.expand('BookableDays');
当执行查询时,我得到请求的服务实体,除了 bookableDay 属性之外的所有数据始终是一个空数组。当我检查 Json 答案时,我看到 workdayHours 也被传输,并且微风甚至调用了我为这个实体定义的 ctors。但是,它们没有链接到 bookableDays 属性本身。
在检查生成的数据库模型时,EF 按预期在工作日为服务、员工和商店生成了外键。
微风不能有几个可选的外键吗?
建议和想法高度赞赏。