Как использовать Linq First с общим базовым классом C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как использовать Linq First с общим базовым классом

Сообщение Anonymous »

Я работаю над этой статьей о Xaml Brewer и немного изменяю ее, чтобы использовать мои модели. Он использует общий базовый класс MasterDetailViewModel типа T.
Базовый класс объявлен таким образом

Код: Выделить всё

    public abstract partial class MasterDetailViewModel : ObservableObject
{
private readonly ObservableCollection items = new();
etc...
Мой производный класс объявлен как .

Код: Выделить всё

    public partial class HomePageViewModel : MasterDetailViewModel
{

etc..
Класс-клиент

Код: Выделить всё

[Table("tenants")]
public partial class Tenant
{
//[Column("email")]
public string Email { get; set; }

//[Column("first_name")]
public string FirstName { get; set; }

[Key]
public int Id { get; set; }
etc..
Мой производный класс содержит RelayCommand и метод

Код: Выделить всё

    [RelayCommand]
private void Delete(int param) //param is Id of selected list item
{
DeleteCommand_Executed(param);
}

private void DeleteCommand_Executed(int parm)
{
if (parm > 0)
{
var toBeDeleted = Items.First(c => c.Id == parm); //get the record with this Id
DeleteItem(toBeDeleted); //delete from the database
}
}
Я хочу переместить методы RelayCommand и DeleteCommand_Executed в базовый класс. Если я просто перенесу команду ретрансляции в базовый класс и добавлю эту защищенную абстрактную силу DeleteCommand_Executed(int parm);, то с этим в производном классе защищенное переопределение void DeleteCommand_Executed(int parm) и т. д. все это работает нормально, но если я перенесу DeleteCommand_Executed в базовый класс, я получу эту ошибку.
Ошибка (активная). CS1061 «T» не содержит определения для «Id» и нет доступного метода расширения «Id». ' можно найти первый аргумент типа "T" (вам не хватает директивы using или ссылки на сборку?)
Я пробовал добавить идентификатор типа var toBeDeleted = Items.First (c => c.Id == параметр);
Я просмотрел несколько похожих вопросов по SO и пару элементов, найденных в Google, и думаю, что мне говорят, что T неизвестен, пока выражение не будет выполнено, поэтому он не может знать, что свойствами Т обладает? Так возможно ли достичь моей цели — поместить все в базовый класс?
Заранее спасибо

Подробнее здесь: https://stackoverflow.com/questions/790 ... base-class
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как использовать Linq First с общим базовым классом
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Ключ для папоротника должен быть 32-безопасным базовым базовым базовым 64 байтами. Ошибка при шифровании строки
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Python Geric Typevar, связанный с общим базовым классом
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Python Generic Typevar, связанный с общим базовым классом
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Python Generic Typevar, связанный с общим базовым классом
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous

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