我正在尝试为我设置的EntityDataSource使用Include属性,但我不确定如何遵循这种关系。所以我有一个看起来像这样的DetailsView:
正如你所看到的,那里有一个外键字段。最终我要做的就是拉入记录,以便我可以在编辑时显示不同的字段(名称)和下拉列表。
我的标记非常基础:
<asp:EntityDataSource runat="server" ID="efDataSource" OnContextCreating="On_ContextCreating" EntitySetName="FuelSurcharges" EnableUpdate="true" EnableInsert="true" EnableDelete="true" EnableFlattening="true" AutoPage="true" AutoSort="true" />
<asp:DetailsView ID="dvSelectedRecord" runat="server" AutoGenerateRows="true" DataSourceID="efDataSource" AutoGenerateInsertButton="true" AutoGenerateEditButton="true" AutoGenerateDeleteButton="true">
</asp:DetailsView>
所以我在EntityDataSource上遇到了Include属性,我假设它是我想要使用的。但是我在这个页面上向后查看我的数据是为了绑定目的:
/// <summary>
/// Represents a Freight Company
/// </summary>
[Table("NetC_EF_FreightCompany")]
public class FreightCompany
{
/// <summary>
/// The ID of the Freight Company
/// </summary>
[Key]
public int ID { get; set; }
public String Name { get; set; }
public String Description { get; set; }
public Double CubicToKiloRatio { get; set; }
public Boolean DeadweightCalculationEnabled { get; set; }
public Boolean VolumetricWeightCalculationEnabled { get; set; }
public Boolean LoadingMetreCalculationEnabled { get; set; }
public Double CargoMeterHeightLookup { get; set; }
public Double CargoMeterLookup { get; set; }
/// <summary>
/// The Fuel Surcharges for this Company
/// </summary>
public ICollection<FuelSurcharge> FuelSurcharges { get; set; }
}
和
/// <summary>
/// Represents a Fuel Surcharge
/// </summary>
[Table("NetC_EF_FuelSurcharge")]
public class FuelSurcharge
{
/// <summary>
/// The ID of the Fuel Surcharge
/// </summary>
[Key]
public int ID { get; set; }
public DateTime? FromDate { get; set; }
public DateTime? ToDate { get; set; }
public Double PercentageSurcharge { get; set; }
}
当我没有可以使用的字段时,如何包含FreightCompany(因此我可以使用Name属性) - 但我确实有外键ID?
答案 0 :(得分:0)
好像你可以使用&#39; Back References&#39;他们解决了这个问题。我更改了FuelSurcharge以包含一个额外的属性:
public FreightCompany FreightCompany { get; set; }
现在我可以在EntityDataSource上添加一个include:
<asp:EntityDataSource runat="server" ID="efDataSource" OnContextCreating="On_ContextCreating" EntitySetName="FuelSurcharges" EnableUpdate="true" EnableInsert="true" EnableDelete="true" EnableFlattening="true" AutoPage="true" AutoSort="true" Include="FreightCompany"/>
并且可以绑定到其他值,如:
<asp:BoundField DataField="FreightCompany.Name" HeaderText="Freight Company" />