【发布时间】:2021-12-22 16:30:08
【问题描述】:
public static List<TruckWithModel> GetAllTrucks()
{
using (DAD_BaldipContext ctx = new DAD_BaldipContext())
{
var x = ctx.TruckFeatureAssociation
.Include(t => t.Truck)
.Include(tf => tf.Feature)
.Include(tm => tm.Truck.TruckModel)
.Select(it => new TruckWithModel()
{
Colour = it.Truck.Colour,
Size = it.Truck.TruckModel.Size,
RentalPrice = it.Truck.DailyRentalPrice,
Status = it.Truck.Status,
Model = it.Truck.TruckModel.Model,
Rego = it.Truck.RegistrationNumber,
Features = it.Feature.Description
}) ;
return (List<TruckWithModel>)x.ToList();
}
}
此代码从相关表TruckFeatureAssociation、TruckFeature、IndividualTruck 和TruckModel 中检索各种属性值。
我遇到的问题是TruckFeatureAssociation 最多有5 个条目用于同一辆卡车,该表是IndividualTruck 和TruckFeature 之间的连接表,其中TruckFeature 是各种功能的表。
对于每个 TruckFeatureAssociation,创建一个不同的 TruckWithModel 对象,即如果有 3 个相关联的功能,每辆卡车在我调用此函数的数据网格中显示三行。
我想要它以便所有功能都可以存储在一个对象中。
所以在上面的输出中,我只想要一行,说警报系统,镀铬轮子。
【问题讨论】:
-
在
t-sql中我们使用stuff来合并2 个标识为相同的记录 -
你能给我看一个这样的工作例子吗
-
或添加到我当前解决方案的代码
-
您应该从 Truck 实体而不是 TruckFeatureAssocation 开始查询,因为您希望每辆 Truck 有一个查询结果。然后,您可以添加一个用于将特征存储到返回类型的数组,或者如果您只想进行字符串连接操作,例如在网格中显示“feature1, feature2, feature3”。
-
问题在于该功能在使用点符号的单个卡车上不可用
标签: c# sql-server entity-framework data-binding