у меня есть это C# объявление класса:Невозможно запросить поля LINQ поддержанные частного члена
public class Cookie : INotifyPropertyChanged
{
.....
[Column(Name = "CookieID", IsPrimaryKey = true, IsDbGenerated = true)]
public int Id { get; set; }
[Column(Name = "CookieName")]
private string _name;
public string Name
{
get
{
return _name;
}
set
{
_name = value;
OnPropertyChanged(@"Name");
}
}
}
Я выполнить следующий запрос в VB.NET:
m_Data.Cookies.Any(Function(x) x.Name = "selectedproject")
который встречается с ошибкой " У члена DataModel.Cookie.Name нет поддерживаемого перевода на SQL. "
Запрос свойство Id вместо или изменить свойство имени следующим образом:
[Column(Name = "CookieName")]
public string Name { get; set; }
работает отлично, но я не могу генерировать событие PropertyChanged, что мне нужно сообщить пользовательский интерфейс изменения поля. Есть ли способ сделать свойство переводимым на SQL, сохраняя возможность уведомления?
Вы абсолютно правы. Я предположил, что свойство setter было вызвано только конечным пользователем базы данных и никогда не было у провайдера. Вот почему я поддержал поле частной собственностью. Конечно, это удалит отображение из свойства в поле, поэтому оно не будет запрашиваться. – Bart