我很难从派生类中检索数据
在我的示例中,我想以CoatRecipe具有CoastSteps的方式提取数据,并且ScrubRecipes具有ScrubSteps。
所有步骤都有一系列输出。
在此示例中,正在保存数据,我可以检索配方,步骤,但不会检索输出。我错过了什么?
我应该补充一下。在这个例子中。 Recipe1.Steps没有OutputList。 OutputList是我想要检索的。
我正在使用EntityFramework 6.1
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="Table">
<thead>
<tr>
<td>ID</td>
<td>Code</td>
<td>Client</td>
<td>Debit/Credit</td>
<td>Quantity</td>
<td>Price</td>
<td>Options</td>
</tr>
</thead>
<tbody id="TableBody">
<tr>
<td>1</td>
<td>1</td>
<td>3</td>
<td>Debit</td>
<td class="quantity" data-value="10">10</td>
<td class="price" data-value="12.00">12.00</td>
<td>
<input type="button" value="Delete" data-action="delete-row" />
</td>
</tr>
<tr>
<td>2</td>
<td>2</td>
<td>12</td>
<td>Debit</td>
<td class="quantity" data-value="5">5</td>
<td class="price" data-value="10.00">10.00</td>
<td>
<input type="button" value="Delete" data-action="delete-row" />
</td>
</tr>
</tbody>
<tfoot id="TableFooter">
<tr>
<td colspan="4">Total</td>
<td class="total quantity">15</td>
<td class="total price">170.00</td>
</tr>
</tfoot>
</table>
<input type="button" id="xd" value="add row">
答案 0 :(得分:1)
在使用不包含所需集合的父类RecipeStep
时,您必须使用explicit loading来加载集合。您还需要将每个RecipeStep
强制转换为包含该集合的子类。
foreach (var coatStep in recipe1.steps.OfType<CoatStep>())
{
db.Entry(coatStep).Collection(x => x.outputList).Load();
}
此执行的性能不是最好的,因为它会导致每次迭代的数据库查询。但是,除非你拥有大量的实体,否则它确实不应该太糟糕。