Код файла контекста моих объектов:
public partial class MyDbContext : DbContext
{
//dbset 1
public DbSet<Customer> Customers { get; set; }
//dbset 2
public DbSet<Order> Orders { get; set; }
}
Class Shipments имеет метод GetCustomerName
public class Shipments
{
public string GetName(object caller, System.Data.Entity.DbSet objectContext)
{
//This one passes.
IQueryable<Customer> myCustomer = from p in objectContext
select p where p.Id=1; //get customer name
//This one fails
IQueryable<caller.GetType()> myCustomer = from p in objectContext
select p where p.Id=1; //get customer name
}
}
Вопрос: Я хотел бы удалить жесткое кодирование класса Customer, вместо этого вызывая этот метод, передавая имя класса в качестве параметра?
Как я могу реализовать это? В данном случае caller.GetType().Name
у меня не сработало.
GetName(Order, mydbContext);
GetName(Customer, mydbContext);
Оба должны работать с одним и тем же кодом (пытаясь сделать его универсальным, я не уверен, как сделать его универсальным). Любая помощь будет отличной. Спасибо.
Id
иName
. Даже в этом случае вам понадобится переключатель или дженерики, чтобы определить, какое свойство вашего контекста запрашивать. - person D Stanley   schedule 18.11.2014