Ali Majed HA Ответов: 1

Вступить на один-ко-многим отношения в рамках субъекта


привет
Я хочу закодировать соединение по отношению один ко многим в Entity Framework и иметь доступ к обоим полям таблицы, но я не могу, соединение в SQL :

SELECT        Letter.Text, Users.UserName, Users.ID
FROM            Letter INNER JOIN
                         Users ON Letter.UserID = Users.ID


но в Entity Framework у меня нет доступа к полю "текст", которое находится в таблице "письмо".

код для Entity Framework:

_TestEntities.Users.select( c => new JoinTable {c.UserName, c.Letter. Text });


У меня нет доступа к "текст". а JoinTable - это класс:

public partial class JoinTable 
        {
            public int ID{ get; set; }
            public string UserName{ get; set; }
            public partial Letter _Letter{ get; set; }
        }


Заранее спасибо

Что я уже пробовал:

Я пробовал код выше в EF, но он не позволяет мне получить доступ к полям буквенной таблицы, таким как текст

1 Ответов

Рейтинг:
2

P_Z

Привет,

Может быть, вы можете попробовать такие:

var data = (from user in _TestEntities.Users
            select new JoinTable
            {
                ID = user.ID,
                UserName = user.UserName,
                Letter = new Letter() 
                    {
                       //not sure about the nested object when projecting but still to get the idea
                       Text = user.Letters.FirstOrDefault().Text
                    }  
            });
//Then iterate results ex
foreach(var row in data
{
  //etc
}


Это называется проекцией Linq, см. ссылку Примеры синтаксиса выражения запроса: проекция (LINQ to DataSet)[^]


Ali Majed HA

Привет
Спасибо за решение, но оно будет работать с ошибкой : "сущность или сложный тип' Test02Model.Буква' не может быть сконструирована в запросе LINQ to Entities."