1

予算から経費を差し引いて計算し、ビューに表示しようとしています。計算は機能していますが、結果を自分のビューに組み込む方法に固執しています。現在、エラーが発生しています:

EntityType TETSModel.Project名前 data を持つナビゲーション プロパティを宣言しません。

ステートメントがなければ、projects = from s in db.Projects.Include(p => data) select s;これは正常に機能しますが、残高は表示されません。

誰かがこれを行う方法を教えてもらえますか?

コントローラーから:

public ViewResult Index()
{
    var data = (from p in db.Projects
                join ex in db.ExpenseItems on p.ProjectKEY equals ex.ProjectKEY
                group ex by p into exgroup
                select new Classes.Budget
                {
                ProjectKEY = exgroup.Key.ProjectKEY,
                OverallBudgetMinusExpenses = exgroup.Key.OverallTechnologyBudget - exgroup.Sum(g => g.ExpenseAmount),
                CurrentBudgetMinusExpenses = exgroup.Key.CurrentPeriodBudget - exgroup.Sum(g => g.ExpenseAmount)
                    });
    var projects = from s in db.Projects.Include(p => p.ContractType).Include(p => p.Division)
               select s;
    projects = from s in db.Projects.Include(p => data)
               select s;
    return View(projects.ToList());
}

ビューで:

@model IEnumerable<TETS_DAL.Project>

@{
ViewBag.Title = "Projects";
}
<h2>All Projects</h2>
<p>
@Html.ActionLink("Create New Project", "Create")
</p>
@using (Html.BeginForm())
{
    <table style="padding: 5px 5px 5px 5px;">
    <tr>
        <th>
            <!--@Html.DisplayNameFor(model => model.ProjectKEY)-->
        </th>
        <th>Project<br />
            Number
        </th>
        <th>Office
        </th>
        <th>Project<br />
            Description
        </th>
        <th>Start<br />
            Date
        </th>
        <th>End<br />
            Date
        </th>
        <th>Current<br />
            Period<br />
            Start
        </th>
        <th>Current<br />
            Period<br />
            End
        </th>
        <th>Total<br />
            Budget
        </th>
        <th>Total<br />
            Budget<br />
            Balance
        </th>
        <th>Current<br />
            Budget
        </th>
        <th>Current<br />
            Budget<br />
            Balance
        </th>
        <th></th>
    </tr>

    @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.HiddenFor(modelItem => item.ProjectKEY)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.ProjectNumber)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Division.DivisionName)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.ProjectDescription)
            </td>
            <td>
                @String.Format("{0:d}", item.StartDate)
            </td>
            <td>
                @String.Format("{0:d}", item.OverallEndDate)
            </td>
            <td>
                @String.Format("{0:d}", item.CurrentPeriodStartDate)
            </td>
            <td>
                @String.Format("{0:d}", item.CurrentPeriodEndDate)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.OverallTechnologyBudget)
            </td>
            <td>
                @*  @Html.DisplayFor(modelItem => item.ExpenseItem.ExpenseAmount)*@
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.CurrentPeriodBudget)
            </td>
            <td>

            </td>
            <td>
            @Html.ActionLink("Edit", "Edit", new { id = item.ProjectKEY }) |
            @Html.ActionLink("Details", "Details", new { id = item.ProjectKEY }) |
            @Html.ActionLink("Expenses", "Index", "ExpenseItem", new { projectSearchString = item.ProjectNumber }, null)
            </td>
        </tr>
    }
</table>

}

予算クラス:

public class Budget
{
[Key]
public int ProjectKEY { get; set; }
public decimal? OverallBudgetMinusExpenses { get; set; }
public decimal? CurrentBudget { get; set; }
public decimal? CurrentBudgetMinusExpenses { get; set; }
public decimal? OverallBudget { get; set; }
}

プロジェクト モデル:

namespace TETS_DAL
{
using System;
using System.Collections.Generic;

public partial class Project
{
    public Project()
    {
        this.ExpenseItems = new HashSet<ExpenseItem>();
    }

    public int ProjectKEY { get; set; }
    public Nullable<int> DivisionKEY { get; set; }
    public Nullable<int> ContractTypeKEY { get; set; }
    public string ProjectNumber { get; set; }
    public string ProjectDescription { get; set; }
    public Nullable<System.DateTime> StartDate { get; set; }
    public Nullable<System.DateTime> OverallEndDate { get; set; }
    public Nullable<System.DateTime> CurrentPeriodStartDate { get; set; }
    public Nullable<System.DateTime> CurrentPeriodEndDate { get; set; }
    public Nullable<decimal> OverallTechnologyBudget { get; set; }
    public Nullable<decimal> CurrentPeriodBudget { get; set; }
    public string Notes { get; set; }
    public Nullable<System.DateTime> CreateDate { get; set; }
    public Nullable<bool> Archive { get; set; }
    public Nullable<System.DateTime> LastUpdate { get; set; }
    public byte[] ts { get; set; }

    public virtual ContractType ContractType { get; set; }
    public virtual Division Division { get; set; }
    public virtual ICollection<ExpenseItem> ExpenseItems { get; set; }
}
}
4

1 に答える 1