C# 从LINQ中的表值SQL函数返回列表?
我有一个使用Entity Framework 6_上下文的WCF服务,它成功地调用了我的SQL db中的许多函数,但是,我在调用表值函数时遇到了问题 My函数接受单个字符串参数user,并使用where子句创建一个视图,以确定该用户可以看到什么。这与预期一样有效,例如:C# 从LINQ中的表值SQL函数返回列表?,c#,sql-server,linq,wcf,C#,Sql Server,Linq,Wcf,我有一个使用Entity Framework 6_上下文的WCF服务,它成功地调用了我的SQL db中的许多函数,但是,我在调用表值函数时遇到了问题 My函数接受单个字符串参数user,并使用where子句创建一个视图,以确定该用户可以看到什么。这与预期一样有效,例如: SELECT * FROM ises.fnarticles ('ANDREW') 我现在尝试从我的WCF服务调用该函数,并将结果返回到列表: public List<vwArticle> GetArticles
SELECT * FROM ises.fnarticles ('ANDREW')
我现在尝试从我的WCF服务调用该函数,并将结果返回到列表:
public List<vwArticle> GetArticlesByAnalyst(string user)
{
return ((IObjectContextAdapter)_Context).ObjectContext.CreateQuery<vwArticle>("SELECT VALUE ISESModel.Store.fnarticles(@userName) FROM {1}",
new ObjectParameter("userName", user)).ToList();
}
我不能返回一个列表,也不能返回一个vwArticle对象。同样的错误…这个方法很冗长,但实现了我所需要的。似乎您可以使用LINQ查询一个表值函数,就好像它是一个表一样
public List<vwArticle> GetArticlesByAnalyst(string user)
{
List<vwArticle> ArticlesByAnyalist = new List<vwArticle>();
var query = from a in _Context.fnarticles(user)
select a;
foreach (var a in query)
{
var article = new vwArticle
{
ArticleId = a.ArticleId,
ArticleTitle = a.ArticleTitle,
Country = a.Country,
userUpdated = a.userUpdated,
userCreated = a.userCreated,
dateCreated = a.dateCreated,
dateUpdated = a.dateUpdated,
versionDate = a.versionDate
};
ArticlesByAnyalist.Add(article);
}
return ArticlesByAnyalist;
}
然后调用我的方法传入用户名并查询列表:
public List<vwArticle> GetArticles(string filter)
{
var ArticlesByAnalyst = GetArticlesByAnalyst("GEMMA");
var query = from a in ArticlesByAnalyst
where blah blah
select a;
return query.ToList();
}
public List<vwArticle> GetArticles(string filter)
{
var ArticlesByAnalyst = GetArticlesByAnalyst("GEMMA");
var query = from a in ArticlesByAnalyst
where blah blah
select a;
return query.ToList();
}