Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
8 / 8 / 6
Регистрация: 14.06.2013
Сообщений: 65

Считать данные с DbSet<T> Code first, linq читае все null а бд создаетьс данные вводяться

11.09.2015, 01:11. Показов 993. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу считать foreach-ом данные, вылетает ексепшн про ынвалид таргет, кароче так:
Бащовый клас
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
namespace HZ
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;
 
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Data.Entity;
 
    //base class for Users, Doctors, Patients, 
    public abstract class Person
    {
        public int ID { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public int Age { get; set; }
        public DateTime BirthDate { get; set; }
 
        public Person(string firstName, string lastName, int age, DateTime birthDate)
        {
            FirstName = firstName;
            LastName = lastName;
            Age = age;
            BirthDate = birthDate;
        }
    }
}
Дочерний
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
namespace HZ
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;
    using System.Data.Entity;
 
    /// <summary>
    /// Class for Doctors, which inherit properties from base class Person.</summary>
    [Table("Doctors")]
    public class Doctor : Person
    {
        /// <summary>
        /// Property, which mean doctor speciality(for ex: Urologist).</summary>
        public string Speciality { get; set; }
        public virtual List<Patient> Patients { get; set; }
 
        public Doctor(string firstName, string lastName, int age, DateTime birthDate, string speciality)
            : base(firstName, lastName, age, birthDate) { Patients = new List<Patient>(); Speciality = speciality; }
 
        public override string ToString()
        {
            return string.Format("Hi, I'm a Doctor. ID: {0}, FirstName: {1}, LastName: {2}, Age: {3}, BirthDate: {4}, Account: {5}", ID, FirstName, LastName, Age, BirthDate, Speciality);
        }
    }
}
Дочерний
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
namespace HZ
{
    using System;
    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;
    using System.Data.Entity;
 
    [Table("Patients")]
    public class Patient : Person
    {
        public string Disease { get; set; }
 
        public Patient(string firstName, string lastName, int age, DateTime birthDate, string disease)
            : base(firstName, lastName, age, birthDate)
        {
            Disease = disease;
        }
 
        public override string ToString()
        {
            return string.Format("Hi, I'm a Patient. ID: {0}, FirstName: {1}, LastName: {2}, Age: {3}, BirthDate: {4}, Account: {5}", ID, FirstName, LastName, Age, BirthDate, Disease);
        }
    }
}
штука де храниться
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/// <summary>
/// Class, for database.</summary>
namespace HZ
{
    using System.Data.Entity;
 
    /// <summary>
    /// Class, for add Persons to database.</summary>
    public class PersonContext : DbContext
    {
        /// <summary>
        /// Gets and Sets automaticaly. 
        /// Collection of all entities(Persons classes) 
        /// in the context</summary>
        public DbSet<Person> Persons { get; set; }
    }
}
код запуска
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace HZ
{
    class Program
    {
        static void Main(string[] args)
        {
            CreateDataBase();
            Console.Read();
        }
 
        public static void CreateDataBase()
        {
            using (var context = new PersonContext())
            {
                Doctor doctor = new Doctor("Andrew", "Klichko", AgeCounter(new DateTime(1991, 11, 20)), new DateTime(1991, 11, 20), "Sergion");
                Patient patient = new Patient("Eduard", "Shevchenko", AgeCounter(new DateTime(1997, 08, 15)), new DateTime(1997, 08, 15), "flu");
                doctor.Patients.Add(patient);
                context.Persons.Add(doctor);
                context.Persons.Add(patient);
                context.SaveChanges();//все ок бд создаеться с данными
            
                //тут и есть ошибка, типа линк читает все как нулл
                var collection = from item in context.Persons select item;
//ну и тут ексепшн
                foreach (var item in collection)
                {
                    Console.WriteLine(item);
                };
            }
            Console.WriteLine("All is fine, press Enter");
        }
 
        static int AgeCounter(DateTime BirthDate)
        {
            TimeSpan age = DateTime.Now.Subtract(BirthDate);
            return (age.Days) / 365;
        }
    }
 
}
не мог понять, почему бд создает, данные кидает, а как считать то линк читате все как нулл и фоич выбивает инвалид таргед, че за? помогите плиз, впроз жизни и смерти!!!

Добавлено через 1 час 5 минут
короче ответ в том что в класах не было пустих конструкторов, а просто параметризированные, сделал так:
C#
1
        public Patient() : this("PatientName", "PatientLastName", 23, new DateTime(1991 - 11 - 20), "Sergion") { }
для всех дочерних класов и все стало на свои места, только не пойму почему так? что ему не нравилось?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.09.2015, 01:11
Ответы с готовыми решениями:

Считать данные из файла и поместить данные о каждом пассажире и его билете
Всем доброго времени суток! Я пишу программу, смысл которой заключается в следующем: Программа должна записывать данные о пассажире...

Считать данные о ноутбуках с .txt, обрабатывать их и записывать в .bin файл отсортированные данные
Добрый вечер. Пред мной поставлена задача написать программу, которая будет считывать данные о ноутбуках с файла .txt обрабатывать их и...

Описать структуру с полями, считать данные из текстового файла, вывести данные, подсчитать количество
Доброе утро. С C# я знаком весьма посредственно, однако появилась необходимость выполнить на нем следующее задание: Описать структуру с...

1
80 / 73 / 25
Регистрация: 26.10.2010
Сообщений: 231
11.09.2015, 17:18
Andrew_Guchko,

В классе контекста необходимо обьявить конструктор Класса с передачей родительскому названия соединения. Для самих же классов конструкторы не нужны, тем более что при создании обьектов в коде эти конструкторы не используются.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.09.2015, 17:18
Помогаю со студенческими работами здесь

Считать все данные из файла в массив Vx
Дана таблица вида(считывается из файла): , два одномерных массива R и L (они в виде столбцов). Нужно: - считать...

Считать все строки из файла и занести данные в RichTextBox
int i = 0; string f = File.ReadAllLines(&quot;Resalt.dat&quot;); string j = f.Split(new char { ',' }); richTextBox1.Text = j; ...

Как считать все данные о файлах и сохранить в xml файл?
Добрый день. Подскажите пожалуйста. Как считать все данные о файлах (как считать имя, его размер в Мб), находящихся в каталоге указываемый...

Собрать несколько DbSet в одном классе при использовании Code First
Есть три класса Book, Chapter, ChapterItem в Model. Как лучше создать еще класс AppDBContext и там определить DbSet'ы или вообще все...

Создать отчет, чтобы он отражал не все данные, а данные только 1 человека
Здравствуйте! Мне нужно создать отчет, чтобы он отражал не все данные, а данные только 1 человека. У меня уже есть отчет( по форме), но там...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru