私はこの方法を持っています
public CreateModule GetModuleDetails(long id)
{
var module = (_dbSis.Modules.Where(t => t.Id == id).Select(m => new CreateModule
{
Id = id,
ModuleId = m.ModuleId,
TypeName = m.ModuleType.TypeName,
KindName = m.ModuleType.ModuleKind.KindName,
Properties = m.PropertyConfiguration.PropertyInstances.Select(
x => new Property { Name = x.Property.Name, Value = x.Value })
}));
return (module.FirstOrDefault());
}
このメソッドでは、 ID 40 のモジュールに2 つのプロパティ名と 2 つのプロパティ値があるとします。これらのプロパティ名と値の 2 つだけを返す関数が必要だったので、基本的に上記の関数のPropertiesフィールドはIEnumerable型です。私はこれをやったが、今はうまくいかない
public List<Property> GetModuleProperties(long id)
{
var moduleProperties = _dbSis.Modules.Where(m => m.Id == id).SelectMany(p => new Property()
{
Name = p.PropertyConfiguration.PropertyInstances.Select(z=>z.Property.Name),
Value = p.PropertyConfiguration.PropertyInstances.Select(x=>x.Value)
});
return (moduleProperties);
}
しかし、 linq 式がフィールドに 2 つの名前とフィールドに 2 つの値を返すため、 Where i assign Name
and using Linq の行にエラーが表示されます。Value
Name
Value
メソッドが適切な値のリストを返すようにするには、どうすればこれを解決できますか?
実際、現在、このモジュールには 2 つのプロパティ名があります: Physical ID と FirmwareVersion で、2 つの値は 123456 と 1.02 です。