Правило NRULES не может совпадать с свойством GUID в When (). Query ()C#

Место общения программистов C#
Anonymous
 Правило NRULES не может совпадать с свойством GUID в When (). Query ()

Сообщение Anonymous »

У меня есть правило NRULES, в котором оно не может соответствовать свойству GUID коллекции в when (). Query (), но могу сопоставить/фильтр, если я сделаю свойство идентификатора как целое число. Есть ли способ для его фильтрации даже для свойства GUID?
Правило: < /p>
public class AbcRule : Rule
{
private readonly ILogger _logger;

public AbcRule(ILogger logger)
{
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
}
public override void Define()
{
Guid AbcId = default!;
IEnumerable AbcCollection = default!;

When().Match(() => AbcId)
.Query(() => AbcCollection, k => k.Match(a=>a.AbcId == AbcId).Collect());

Then().Do((IContext ctx) => ctx.Insert(ProcessResult(AbcId, AbcCollection)));
}

private AbcResult ProcessResult(Guid abcId, IEnumerable abcCollection)
{
var count = abcCollection.Count(); //collection is not filtered, still displaying 3 items, expecting 1 only

return new AbcResult();
}
}
< /code>
Пожалуйста, смотрите значения факта, передаваемые в сеанс в том же порядке:
Примечание. Значения действительно передаются в правило правильно. Я мог отлаживать и увидеть, что это было правильно. < /P>
var Id = new Guid("450912D8-DB17-494B-B229-B6F12B5D51A2")

IEnumerable abcCollection = new[] {
new Abc{AbcId = new Guid("FEE363FB-B33F-478B-A556-DD089475CD83"), Name = "Hello1"},
new Abc{AbcId = new Guid("FEE363FB-B33F-478B-A556-DD089475CD83"), Name = "Hello2"},
new Abc{AbcId = new Guid("450912D8-DB17-494B-B229-B6F12B5D51A2"), Name = "Hello3"}, };
< /code>
ABC Class < /p>
public class Abc {
public Guid AbcId { get; set; }

public string Name { get; set; } = string.Empty;
}


Подробнее здесь: https://stackoverflow.com/questions/794 ... when-query

Вернуться в «C#»