Как пометить свойство, недоступное в предикатах - PullRequest
0 голосов
/ 26 сентября 2018

Я использую свойство в моей модели, которое не сопоставлено с полями базы данных.Но он доступен в предикатах:

Queryable().Where(w => w.MyProperty == "HELLO")


[NotMapped]
public string MyProperty { get; set; }

Как я могу запретить доступ к этому свойству в предикатах?

Спасибо

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Вам необходимо перейти к выполнению запросов в памяти, используя .AsEnumerable (), .ToList () и т. Д .:

EG

var q = db.SomeEntity.Where( e => e.SomeMappedProperty == "A");

var results = q.AsEnumerable().Where(w => w.MyProperty == "HELLO");
0 голосов
/ 26 сентября 2018

Я не уверен, что это лучшее решение, но если вы хотите сохранить эти свойства как часть вашей модели, вы можете переместить классы модели в отдельный проект и отметить все свойства, которые вы хотите скрыть, как internalтаким образом, к этим свойствам можно получить доступ только внутри этой сборки, если вы не укажете

[assembly: InternalsVisibleTo()] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...