相关疑难解决方法(0)

实体框架 - 包含多个属性级别

Include()方法适用于对象列表.但是,如果我需要深入两个级别呢?例如,下面的方法将返回ApplicationServers,其中包含此处显示的包含属性.但是,ApplicationsWithOverrideGroup是另一个容纳其他复杂对象的容器.我也可以在该属性上执行Include()吗?或者我如何才能完全加载该属性?

现在看来,这个方法:

public IEnumerable<ApplicationServer> GetAll()
{
    return this.Database.ApplicationServers
        .Include(x => x.ApplicationsWithOverrideGroup)                
        .Include(x => x.ApplicationWithGroupToForceInstallList)
        .Include(x => x.CustomVariableGroups)                
        .ToList();
}
Run Code Online (Sandbox Code Playgroud)

将仅填充Enabled属性(下方),而不填充Application或CustomVariableGroup属性(如下所示).我该如何实现这一目标?

public class ApplicationWithOverrideVariableGroup : EntityBase
{
    public bool Enabled { get; set; }
    public Application Application { get; set; }
    public CustomVariableGroup CustomVariableGroup { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

c# entity-framework

335
推荐指数
7
解决办法
20万
查看次数

如何在linq中包含()嵌套的子实体

我如何包括孩子的孩子?

即,乔布斯有引用具有QuoteItems

var job = db.Jobs
            .Where(x => x.JobID == id)
            .Include(x => x.Quotes)
            .Include(x => x.Quotes.QuoteItems) // This doesn't work
            .SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)

为了更清楚 - 我正在尝试检索单个作业项目,并且它是关联的报价(一对多)和每个报价相关的QuoteItems(一个报价可以有许多QuoteItems)

我问的原因是因为在我的报价索引视图中,我试图通过SUMming小计显示每个报价的所有报价项目的总和,但是它出现为0.我正在调用这样的小计:

@item.QuoteItem.Sum(p => p.Subtotal)
Run Code Online (Sandbox Code Playgroud)

我相信我遇到这个问题的原因是我上面的Linq查询没有检索每个Quote的相关QuoteItems.

.net c# linq entity-framework

32
推荐指数
4
解决办法
3万
查看次数

一对多返回空数组

我正在尝试以一对多关系连接两个对象,Workplace 可以容纳多个 People,而一个 Person 只能拥有一个 Workplace。

当我执行此代码片段并检查结果时,p1 已正确将 w1 指定为 p1.Workplace,但 w1.employees 的人员列表始终为空。

即使我将 w1 分配给 p1.Workplace 之后,是否还必须手动将 p1 添加到 w1.Employees 中?

SeedData.cs(代码片段)

var w1 = new Workplace
{
   EntryCode = "1111"
   //[...] other data I cut out for brievity
};
context.Workplaces.Add(w1);

Person p1 = new Person
{
    Name = "Spencer",
    Workplace = w1
   //[...] other data I cut out for brievity
};
context.Person.Add(p1)
context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

工作场所.cs

using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;

namespace Counsel.Models
{
    [Table("Workplace")]
    public class Workplace
    {
        [Column("WorkplaceId")] …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework-core asp.net-core

4
推荐指数
1
解决办法
1874
查看次数