【发布时间】:2011-09-02 13:37:31
【问题描述】:
我正在尝试创建一个通用的 xmlRepository,我可以在其中传入任何类型并返回一个列表。
目前我的代码看起来像这样(只有这样我才能让它工作):
public IQueryable<TEntity> GetQuery<TEntity>() where TEntity : class
{
var filename = GetEntityFileName<TEntity>();
var doc = XDocument.Load(filename);
var query = (from p in doc.Descendants(entityName)
select (ServiceAccount)p).AsQueryable().Cast<TEntity>();
return query;
}
我想换掉
select (ServiceAccount)p).AsQueryable().Cast<TEntity>();
与
select (TEntity)p).AsQueryable();
TEntity 和 ServiceAccount 是同一个对象,
LINQ to XML 可以做到这一点吗?
我有一个使用 EF 的 SQLRepository,其中有相同的方法,我正在寻找 LINQ to XML 的等价物
((IObjectContextAdapter)_context).ObjectContext.CreateQuery<TEntity>(entityName);
如果确实有的话。
【问题讨论】:
-
尝试第二种方法时遇到什么类型的错误?
-
您是否首先使用实体框架代码?
-
无法将类型“System.Xml.Linq.XElement”转换为“TEntity”。我也试过 [code] select (typeof(TEntity))p).AsQueryable().OfType
();
标签: c# entity-framework generics linq-to-xml repository-pattern