我试图写一个LINQ(到对象)查询连铸结果的接口,如下图所示:铸造LINQ查询结果到接口
var data = (from row in CicApplication.Vaporizer473Cache
where row.Coater == coater
select row).Cast<IVaporizerData>();
这似乎是唯一的方式这样做,因为我无法在select中创建接口的实例。我有两个问题:
演员是如何实际完成的?它会找到源中的每个属性并将其值复制到具有相同名称的接口属性?
我有一个属性在我的界面中不包含在源中,但我想以某种方式在此操作中设置其值。这可能吗?或者我需要在查询之后执行它,在每个语句中?
如果有帮助,数据源(Vaporizer473Cache)的类定义如下所示。界面非常相似。
internal class Vaporizer473
{
/// <summary>
/// Gets or sets the Coater property
/// </summary>
public string Coater { get; set; }
/// <summary>
/// Gets or sets the CoaterTime property
/// </summary>
public DateTime? CoaterTime { get; set; }
/// <summary>
/// Gets or sets the TemperatureLeftTubeA property
/// </summary>
public double? TemperatureLeftTubeA { get; set; }
/// <summary>
/// Gets or sets the TemperatureLeftTubeB property
/// </summary>
public double? TemperatureLeftTubeB { get; set; }
/// <summary>
/// Gets or sets the TemperatureRightTubeA property
/// </summary>
public double? TemperatureRightTubeA { get; set; }
/// <summary>
/// Gets or sets the TemperatureRightTubeB property
/// </summary>
public double? TemperatureRightTubeB { get; set; }
}
无;那只会抛出一个'InvalidCastException'。 – SLaks