リフレクションを使用して、できます。これを試して:
static bool CheckAllFields<TInput, TValue>(TInput input, TValue value, bool alsoCheckProperties)
{
Type t = typeof(TInput);
foreach (FieldInfo info in t.GetFields().Where(x => x.FieldType == typeof(TValue)))
{
if (!info.GetValue(input).Equals(value))
{
return false;
}
}
if (alsoCheckProperties)
{
foreach (PropertyInfo info in t.GetProperties().Where(x => x.PropertyType == typeof(TValue)))
{
if (!info.GetValue(input, null).Equals(value))
{
return false;
}
}
}
return true;
}
そしてあなたのLINQクエリ:
var tblequipments = db.tblEquipments.Include(t => t.User).Include(t => t.ChangeLog).Include(t => t.AssetType) の d から
どこで CheckAllFields(d, "VALUE", true) select d;
true
すべてのフィールドとすべてのプロパティをチェックする場合、およびすべてのフィールドのみをチェックする場合は、3 番目のパラメーターを指定する必要がありfalse
ます。