Diğer Kuruluşlar da Dahil olmak üzere EF (Genel Depo desen)
Varlık Çerçevesi Kod üstünde Genel Havuz desen İlk kullanıyorum. Her şey bir sorgu daha fazla varlıkları dahil etmek için ihtiyacım kadar gayet iyi çalışıyordu. Bir işletmenin başarılı bir şekilde dahil etmek için aldım, ama şimdi birden çok varlıkları dahil etmek için nasıl çözemiyorum. Şimdiye kadar ne buldum: Check out
public IQueryable<TEntity> GetQuery<TEntity>() where TEntity : class
{
var entityName = GetEntityName<TEntity>();
return _objectContext.CreateQuery<TEntity>(entityName);
}
public IList<TEntity> GetQueryWithInclude<TEntity>(string toInclude) where TEntity : class
{
var entityName = GetEntityName<TEntity>();
return _objectContext.CreateQuery<TEntity>(entityName).Include(toInclude).ToList();
}
private string GetEntityName<TEntity>() where TEntity : class
{
return string.Format("{0}.{1}", _objectContext.DefaultContainerName, _pluralizer.Pluralize(typeof(TEntity).Name));
}
Ne yapmaya çalıştım ama bir işlev dize dizisi başarılı oldu işe yaramadı, daha sonra "sorgu üstüne içerir. eklemek için deneyin Ben de onu merak ediyordum ne varsa aradığım GetQueryWithİnclude ve geçirilen bir varlık ismi (aslında bir navigasyon özelliği, bir seferde toplam sonuç sorgu, ama endişelendim bu olabilir yinelenen sonuçları sorgu her Ara... sence Ne olur en iyi şekilde bu işe?
Şimdiden teşekkürler!
GÜNCELLEME:
Burada elde etmek için çalışıyorum ne bir örnek:
public IQueryable GetQueryWithIncludes(string[] otherEntities)
{
var entityName = GetEntityName<TEntity>();
//now loop over the otherEntities array
//and append Include extensions to the query
//so inside the loop, something like:
_objectContext.GetQuery<TEntity>(entityName).Include(otherEntities[index]);
}
CEVAP
IQueryable sadece Vardır uzantısını kullanır. EF 4.1 montaj mevcuttur. Eğer o mecliste başvuru istemezsin. eğer üst katman veri erişim derleme sarıcı uzatma yöntemi oluşturun.
Burada örnek var:
public static IQueryable<T> IncludeMultiple<T>(this IQueryable<T> query, params Expression<Func<T, object>>[] includes)
where T : class
{
if (includes != null)
{
query = includes.Aggregate(query,
(current, include) => current.Include(include));
}
return query;
}
Örneğin bunun gibi kullanır:
var query = context.Customers
.IncludeMultiple(
c => c.Address,
c => c.Orders.Select(o => o.OrderItems));
Bu sorgu, onlar adresleri ile tüm müşterilerine yükler ve emirleri ve her sipariş sipariş öğeleri içerir.
SCSS başka bir sınıfı da dahil olmak ü...
Kaldır bütün bağımlılıkları da dahil o...
Nasıl `klon` da dahil olmak üzere alt ...
git: geri yeni dosyalar da dahil olmak...
Varlık boru hattı raylar: /satıcı/varl...