У меня есть две таблицы в базе данных Sql, скажем, таблицы пользователей и UserEducation. В таблице пользователей есть несколько записей, и для каждого пользователя есть одна запись в таблице UserEducation. Я хочу показать все записи в grid-view, присоединившись к этим двум таблицам? Как я могу это сделать с помощью Entity Framework?Как получить несколько записей из второй таблицы в списке записей из первой таблицы Использование EF
Как получить несколько записей из второй таблицы в списке записей из первой таблицы Использование EF
ответ
Или с помощью Linq к Entity и объединения таблиц .:
using (var context = new YourContext)
{
var users = context.UserDbSet;
var userEdications = context.UserEdication.DbSet ;
var joinedTables = from user in users
join userEdication in userEdications on user.userId = userEdication.userId
select new OutPutEntity
{
Name = user.Name,
Edication = userEdication.Edication
}
gridView.DataSource = joinedTables.toList(); // should be placed outside the using. (here just as a sample)
}
Преимущество - вы можете указать формат вывода на IQurable уровне. Даунсайд - это выглядит сложным.
Вы можете просто использовать navigationproperty от пользователя:
var user = new User();
user.UserEducation.[Property];
поскольку существует 12:59 отображение, я предпочел бы сделать одну таблицу. Но конкретно вы можете иметь:
entityframeworkContext obj = new entityframeworkContext(); Список xyz = obj.database.SqlQuery ("select u.fieldname1 как modeltablefield1, u.fieldname2 как modeltablefield2, ued.fieldname1 как modeltablefield3, ued.fieldname2 как modeltablefield4 от пользователей u внутреннее соединение UserEducation ued on u.commonfield = ued.commonfield «);
Здесь общее поле будет внешним ключом во второй таблице Таблица моделей - это любая требуемая вами логическая таблица из комбинированного запроса (зависит от MVC) Надеюсь, что это сработает для вас!
Я создал консольное приложение для удовлетворения вашего прецедента. Вам придется повторно использовать этот код в своих окнах или в веб-приложении, где вы хотите привязать вывод к виду сетки. Я предположил некоторые свойства в классах POCO, вы всегда можете изменить их, исходя из того, какие все значения вы сохраняете для своих пользователей и образовательных объектов. Я не упоминал ни одной строки подключения в своем фрагменте кода. Структура Entity автоматически подключается к базе данных sql express на вашем компьютере, если вы не укажете строку подключения или она будет подключаться к базе данных, для которой вы упомянули строку подключения в файле app.config или web.config. Надеюсь это поможет!
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
namespace UsersCodeFirst
{
class Program
{
static void Main(string[] args)
{
using (var db = new EfContext())
{
// Display all users with their education from the database
var query = from user in db.Users
join userEducation in db.UserEducations
on user.UserId equals userEducation.UserId
orderby user.Name
select new
{
Name = user.Name,
UserEducation = userEducation.CourseName
};
//bind to grid by setting grid data source to query.ToList()
}
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
}
public class User
{
public string UserId { get; set; }
public string Name { get; set; }
public virtual List<Education> Posts { get; set; }
}
public class Education
{
public string EducationId { get; set; }
public string CourseName { get; set; }
public string UserId { get; set; }
}
public class EfContext : DbContext
{
public DbSet<Education> UserEducations { get; set; }
public DbSet<User> Users { get; set; }
}
}
Вам нужно будет добавить пакет Entity Framework nuget в ваш проект, чтобы получить ссылку на класс DbContext.
Хорошее объяснение, у меня есть идея, как объяснил Владимир – sa227
- 1. Выберите несколько записей из таблицы
- 2. Удалить несколько записей из таблицы
- 3. получить несколько записей из одной таблицы
- 4. Как извлечь несколько записей из таблицы?
- 5. mySql join - несколько записей из одной таблицы
- 6. Удаление записей из таблицы соответствующих
- 7. Отображение записей из таблицы?
- 8. Удаление записей из таблицы
- 9. SQL: несколько учетных записей из одной таблицы
- 10. Количество записей из таблицы
- 11. выбора записей несколько раз из таблицы
- 12. Использование LINQ Как удалить несколько записей из перекрестных ссылок таблицы
- 13. Вставить несколько записей из двух таблицы
- 14. Select * из таблицы показывают несколько записей
- 15. Удалите несколько записей из таблицы без идентификатора
- 16. выбор конкретных записей из таблицы
- 17. Удалить несколько записей из таблицы SQL Server
- 18. Сумма из записей 3 Таблицы
- 19. Выбор записей из одной таблицы
- 20. Как выбрать несколько записей из таблицы в hibernate
- 21. Получить последнюю 100 записей из таблицы
- 22. Как получить запись из двух таблиц, укажите имя столбца на основе записей записей второй таблицы
- 23. Получить последние 2 записей из таблицы
- 24. Как сортировать данные второй таблицы из первой таблицы в C#
- 25. Получить последние N записей из таблицы
- 26. Удаление повторяющихся записей из таблицы
- 27. поиска из первой суммы таблицы из второй таблицы
- 28. Удаление записей из огромной таблицы
- 29. Удаления записей из данной таблицы
- 30. Подсчет записей из таблицы mysql
Как получить список пользователей на основе списка пользователей таблицы – sa227