Я не понимаю ошибки .. Я думаю, что, насколько я знаю, существует dataType, но я не понимаю, как это сделать?

Я не понимаю ошибки .. Я думаю, что, насколько я знаю, существует dataType, но я не понимаю, как это сделать?

В приведенном ниже коде я надеюсь, что правильно указал, что не так. Мне нужно иметь возможность вызывать item.departments.dept_Type, и это должно быть возможно из-за созданной мной ассоциации. Мне не нужно создавать внутренние соединения в запросе для получения данных, если я правильно понимаю. Это мой PersonClass

    namespace DATALAYER.DataHandler
{

    [Table(Name = "People")]

        public class Person 
        {


        private int _DepartmentID;
        public EntityRef<Department> _Department;
        public Person() { this._Department = new EntityRef<Department>(); }
        private int _ID;
            [Column(IsPrimaryKey =true, Storage  = "_ID")]
            public int ID
            {
                get { return this._ID; }
                set { this._ID = value; }
            }
            private string _p_FirstName;
            [Column(Storage = "_p_FirstName")]
            public string p_FirstName
            {
                get { return this._p_FirstName; }
                set { this._p_FirstName = value; }
            }
            private string _LastName;
            [Column(Storage = "_LastName")]
            public string p_LastName
            {
                get { return this._LastName; }
                set { this._LastName = value; }
            }
            private string _EmailAddress;
            [Column(Storage = "_EmailAddress")]
            public string p_EmailAddress
            {
                get { return this._EmailAddress; }
                set { this._EmailAddress = value; }
            }
            private string _Password;
            [Column(Storage = "_Password")]
            public string p_Password
            {
                get { return this._Password; }
                set { this._Password = value; }
            }
            private string _SSID;
            [Column(Storage = "_SSID")]
            public string p_SSID
            {
                get { return this._SSID; }
                set { this._SSID = value; }
            }
            private string _DOB;
            [Column(Storage = "_DOB")]
            public string p_DOB
            {
                get { return this._DOB; }
                set { this._DOB = value; }
            }
            private string _CellNumber;
            [Column(Storage = "_CellNumber")]
            public string p_CellNumber
            {
                get { return this._CellNumber; }
                set { this._CellNumber = value; }
            }

            [Column(Storage = "_DepartmentID", DbType = "Int")]
            public int p_Department_dept_ID
            {
                get { return this._DepartmentID; }
                set { this._DepartmentID = value; }
            }

            [Association(Storage = "_DepartmentID", ThisKey = "p_Department_dept_ID")]
            public Department Department
            {
                get { return this._Department.Entity; }
                set { this._Department.Entity = value; }
            }
    }

}

Это мой код отдела

    namespace DATALAYER.DataHandler
{
    [Table(Name = "Departments")]
    public class Department
    {
        //private EntitySet<Person> _Person;
        //public Department()
        //{
        //    this._Person = new EntitySet<Person>();
        //}
        private int _DepartmentID;
        [Column(IsPrimaryKey = true, Storage = "_DepartmentID")]
        public int dept_ID
        {
            get { return this._DepartmentID; }
            set { this._DepartmentID = value; }

        }
        private string _deptType;
        [Column(Storage = "_deptType")]
        public string dept_Type
        {
            get { return this._deptType; }
            set { this._deptType = value; }
        }
        //[Association(Storage = "_Person", OtherKey = "ID")]
        //public EntitySet<Person> Persons
        //{
        //    get { return this._Person; }
        //    set { this._Person.Assign(value); }
        //}

    }
}

Проблема, о которой я думаю, заключается в том, что существует проблема с типами данных между первичным ключом человека и внешним ключом отделов. Но поскольку они оба int, я не понимаю, как это может быть проблемой.

Если кто-то может просто объяснить мою проблему ясновидящей, если я ошибаюсь или что-то в этом роде, или помогите мне с решением, пожалуйста.

Добавлен этот класс

namespace DATALAYER.DataHandler
{
public class SHSdb2 : DataContext
{
    public Table<Person> People;
    public Table<Department> Department;
    //public Table<Address> Address;
    public SHSdb2(string connection) : base(connection) { }
}

} Таблица лиц Я не понимаю ошибки .. Я думаю, что, насколько я знаю, существует dataType, но я не понимаю, как это сделать? Таблица отдела Я не понимаю ошибки .. Я думаю, что, насколько я знаю, существует dataType, но я не понимаю, как это сделать?

Без этого кода он работает, но тогда я могу вызывать только вещи внутри таблицы

        [Column(Storage = "_DepartmentID", DbType = "Int")]
    public int p_Department_dept_ID
    {
        get { return this._DepartmentID; }
        set { this._DepartmentID = value; }
    }

    [Association(Storage = "_DepartmentID", ThisKey = "p_Department_dept_ID")]
    public Department Department
    {
        get { return this._Department.Entity; }
        set { this._Department.Entity = value; }
    }

что происходит, когда вы выполняете свой код? где это на самом деле терпит неудачу?

Simon Price 02.05.2018 13:39

Что такое SHSdb2? Вы В самом деле используете LINQ to SQL? Или, возможно, Entity Framework?

mjwills 02.05.2018 13:41

Когда он входит в foreach

Christian Steinmann 02.05.2018 13:41

SHSdb2 - это имя моего проекта, в котором не используется структура сущностей, недопустимая, поэтому я использую этот подход сопоставления Linq

Christian Steinmann 02.05.2018 13:42

добавил еще один класс, возможно, это поможет. Не уверен насчет примера Minimal, Compete и Verifiable. если вы скопируете это, вам, вероятно, просто понадобится база данных, и она должна работать ... Я думаю.

Christian Steinmann 02.05.2018 13:56

Вы скопировали его в консольное приложение, и оно сработало?

mjwills 02.05.2018 14:00

нет пытался ответить кому-то

Christian Steinmann 02.05.2018 14:02

Можете ли вы проверить тип данных каждого столбца таблиц базы данных с помощью свойств DTO.

user1672994 02.05.2018 14:04

Добавлены два изображения, тип данных в столбцах такой же, как и в базе данных, может быть проблема с строкой и nvarchar ???

Christian Steinmann 02.05.2018 14:10

В вашем операторе foreach проверьте, загружены ли свойства элемента (кроме связанного отдела) и могут ли быть распечатаны?

user1672994 02.05.2018 14:18

То, что я сделал это, не из-за отношения, если я удалю отношение, оно работает нормально, поэтому я подумал, что это должно быть с идентификатором

Christian Steinmann 02.05.2018 14:19

Я обновил код вверху

Christian Steinmann 02.05.2018 14:22
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
12
72
1

Ответы 1

Похоже, я исправил это, не уверен, что это исправление, или мне просто повезло, если кто-то все еще может объяснить это мне, это было бы очень признательно.

var personQuery =
            from per in db.People
            where per.p_FirstName == "Christian" 
            select per.Department;

Я думаю, указав, что ему нужно получить данные из отдела, который он разрешил бы в foreach.

Другие вопросы по теме