public class User
{
public string Id {get;set;}
public string Name {get;set;};
public string Surname {get;set;};
}
public class Order
{
public int Id {get;set;}
public string UsrId {get;set;}
public User Usr {get;set;}
public double bill {get;set;}
}
public class AppContext : DbContext
{
public virtual DbSet<User> Users { get; set; }
public virtual DbSet<User> Orders { get; set; }
}
В месте вызова определен контекст
var db = new AppContext();
Получаю конкретных пользователей по условию:
var usrs = db.Users.Where(u=>u.Name=="Иван");
Необходимо получить все заявки, которые содержатся в таблице Orders
, где Order.UsrId совпадает со списком пользователей usrs
Я знаю как это сделать через обычный SQL запрос:
select * from Orders where Orders.UsrId in (select Id from Users where Name=N'Иван')
Как это сделать через linq запрос? Пробовал что-то типа
var ords = db.Orders.Where(o=>o.Id==.....
// и вот тут не могу понять как сопоставить множеству Id из выборки usrs
Как-то так:
void Main()
{
var orders = new List<Order>();
orders.Add(new Order { Id = 1, UsrId = 1 });
orders.Add(new Order { Id = 2, UsrId = 2 });
orders.Add(new Order { Id = 3, UsrId = 2 });
orders.Add(new Order { Id = 4, UsrId = 3 });
orders.Add(new Order { Id = 5, UsrId = 1 });
var subset = new[] { 1, 3};
var result = orders.Where(x => subset.Any(y => y == x.UsrId));
result.Dump();
}
// Define other methods and classes here
public class User
{
public string Id { get; set; }
public string Name { get; set; }
}
public class Order
{
public int Id { get; set; }
public int UsrId { get; set; }
}
Вывод:
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Можно ли задать геттер статичным,но при этом сеттер приватным/публичным? И для чего нужны статичные геттеры и сеттеры?
Проблема возникает при компиляцииУ меня 3 действия, если пользователь ввёл не число, а буквы, то программа должна выводить "Пожалуйста, выбирайте...
Доброго времени сутокУ меня есть такой скрипт управления объектом и есть скрипт коллизии