Я не понимаю ошибку .. Я думаю, насколько я знаю, есть dataType, но я не вижу, как? - PullRequest
0 голосов
/ 02 мая 2018

enter image description here

В приведенном ниже коде я надеюсь, что укажу правильно, что не так. Мне нужно иметь возможность вызывать 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) { }
}

} Персональный стол Person table Стол отдела Department table

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

        [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; }
    }

1 Ответ

0 голосов
/ 02 мая 2018

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

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

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

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