Ответ 1
Если вам просто нужно получить результаты в виде типизированного списка из TVF в Code-First 4.3, вы можете настроить помощника на свой DbContext, например.
public class ModelDbContext : DbContext
{
public IEnumerable<TOutput> FunctionTableValue<TOutput>(string functionName, SqlParameter[] parameters)
{
parameters = parameters ?? new SqlParameter[] { };
string commandText = String.Format("SELECT * FROM dbo.{0}", String.Format("{0}({1})", functionName, String.Join(",", parameters.Select(x => x.ParameterName))));
return ObjectContext.ExecuteStoreQuery<TOutput>(commandText, parameters).ToArray();
}
private ObjectContext ObjectContext
{
get { return (this as IObjectContextAdapter).ObjectContext; }
}
}
Вызов
using (var db = new ModelDbContext())
{
var parameters = new SqlParameter[]
{
new SqlParameter("@Id", SqlDbType.Int),
};
parameters[0].Value = 1234;
var items = db.FunctionTableValue<Foo>("fn_GetFoos", parameters);
}