класс данных структуры лица - PullRequest
0 голосов
/ 05 апреля 2020

Я нашел решение для моей проблемы

   public class Employee
    {
        public int? Id { get; set; }
        public bool IsIdSelected { get; set; }

        public string Name { get; set; }
        public bool IsNameSelected { get; set; }

        public string Address { get; set; }
        public bool IsAddressSelected { get; set; }
    }

        private void OnExportButtonClick(object sender, RoutedEventArgs e)
        {
            // Now, concatinate all the selected cells
            var str = string.Empty;
            foreach (var emp in _collection)
            {
                if (emp.IsIdSelected)
                    str += string.Format("{0}, ", emp.Id);

                if (emp.IsNameSelected)
                    str += string.Format("{0}, ", emp.Name);

                if (emp.IsAddressSelected)
                    str += string.Format("{0}", emp.Address);

                str += "\n";
            }
            // Instead of displaying this message you could export these cells to Excel
            // in the format you need.
            MessageBox.Show(str);
        }
    }
}

Но ...

Мой класс создания с сущностью содержит это:

public partial class People
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Phone { get; set; }

    }

Я не могу добавьте к нему поля bool, потому что это нарушает логику c, а ядро ​​сущности не позволяет мне сделать это.

Как я могу решить проблему? Спасибо.

Ответы [ 3 ]

0 голосов
/ 05 апреля 2020

Вы можете добавить любые свойства, которые вы хотите, к вашим сущностям, если вы хотите, чтобы структура сущностей полностью их игнорировала, пометьте их [NotMapped].

. Это поддерживается целую вечность.

0 голосов
/ 05 апреля 2020

почему вы хотите добавить поле bool к классу людей или что вы намерены достичь из этого, не указано явно, но я бы сказал вам, что я думаю.

1) Если вопрос чтобы добавить дополнительные свойства в класс людей, просто сделайте это!

public partial class People

{

   public int Id { get; set; }

   public int IsIdSelected { get; set; }

   public string Name { get; set; }

   public int IsNameSelected { get; set; }

   public string Phone { get; set; }

   public int IsPhoneSelected { get; set; }

   //you can let me know what error you are getting from adding this properties!!

}

2) Я предполагаю, что вы хотите повторить то, что вы сделали для сотрудника в классе людей, просто сделайте это!

    private void OnExportButtonClick(object sender, RoutedEventArgs e)
    {
        // Now, concatinate all the selected cells
        var str = string.Empty;
        foreach (var ppl in _collection)
        {
            if (ppl.IsIdSelected)
                str += string.Format("{0}, ", ppl.Id);

            if (ppl.IsNameSelected)
                str += string.Format("{0}, ", ppl.Name);

            if (ppl.IsPhoneSelected)
                str += string.Format("{0}", ppl.Phone);

            str += "\n";
        }
        // Instead of displaying this message you could export these cells to Excel
        // in the format you need.
        MessageBox.Show(str);
    }

3) Если «Мой класс генерируется с помощью сущности» означает, что вы генерируете сущность, это означает, что вы, скорее всего, сначала используете базу данных и используете файл ADO-EDMX для создания своей базы энтита на основе таблиц в базе данных. это означает, что вы должны добавить эти свойства в качестве столбцов таблицы «Люди», а затем заново сгенерировать сущности, и у вас появятся добавленные свойства.

4) Если код сначала, добавьте свойства и запустите команду переноса

add -igration AddedBoolProps update-database

... в любом случае, просто заявите об этом явно, продолжайте кодировать !! оставаться в безопасности!

0 голосов
/ 05 апреля 2020

Я предлагаю использовать ViewModel + automapper, так как вы не хотите сохранять поле IsSelected в хранилище данных, поэтому используйте ViewModel и сопоставьте его с DataModel и наоборот.

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