breeze - 帮助开始
breeze - help starting out
我正在 visual studio 中开发一个 c#/mvc/breeze/angular 项目,我被要求构建全新的功能。目前,我们设置了一个存储过程,它被用在一个完全不同的地方来提取数据,现在我们正在将这个使用这个存储过程的 "worksheet" 迁移到这个 c#/mvc/breeze/angular 项目。存储过程 return 是一个常规记录集 - select * 来自我的 table... 它对 return 记录做了几件复杂的事情(不仅仅是基本查询)。 ..
到目前为止,我在 c#/mvc/breeze/angular 项目中看到,他们只使用两种类型的存储过程:一种方式是存储过程是 returning 单个值,另一种方式如果它是 returning 多个 selects 是这样的:select * 来自 table1
select * 来自 table2
select * 来自 table3.
我的问题是:我应该如何开始我的项目(将其添加到这个...)- 我可以使用现有的存储过程还是有一些方法可以将它与 breeze 集成到消除对存储过程的需求...
我看到他们在这个 c#/mvc/breeze/angular 项目上设置了一个 table 样式的工作表(带过滤器),我不能完全按照它进行操作,但它似乎没有命中存储的过程。我是 breeze angular 的新手。
如果我没理解错的话,您希望 breeze 检索存储过程生成的数据。 this answer 有帮助吗?
简而言之,您可以定义将从存储过程中提取的 object 的 class:
internal class RvRDetail
{
public string DistrictName { get; set; }
public string EmployeeName { get; set; }
public string SiteName { get; set; }
public System.DateTime CalendarDate { get; set; }
public string RevenueCategoryName { get; set; }
public decimal TotalRepayment { get; set; }
public decimal TotalRevenue { get; set; }
}
然后在控制器中,只是 运行 你的存储过程就像没有 breeze:
[BreezeController]
public class SeasonlessRvRController : BreezeAbstractApiController
{
// GET: breeze/SeasonlessRvR/RvRData
[HttpGet]
public object RvRData(string districtList="", string showAllPeriods="0")
{
var returnData = _dbContextProvider.Context.Database
.SqlQuery<RvRDetail>("SELECT * from dbo.udf_SeasonlessRvR(@DistrictList, @ShowAllPeriods)",
new SqlParameter("@DistrictList", districtList),
new SqlParameter("@ShowAllPeriods", showAllPeriods))
.ToList();
return returnData;
}
}
当您查询端点时,Breeze 将 return 通过实体管理器进入
因为 breeze 只会 returning plain Javascript Objects,你也可以用 non-breeze api 端点来做到这一点使用 $http.
如果您想要所有花里胡哨的东西(缓存,自动 wiring-up 到其他实体),您将必须创建一个视图并将其像 table 一样包含在您的模型中,使用定义了适当的外键和导航属性。
希望对您有所帮助。
我正在 visual studio 中开发一个 c#/mvc/breeze/angular 项目,我被要求构建全新的功能。目前,我们设置了一个存储过程,它被用在一个完全不同的地方来提取数据,现在我们正在将这个使用这个存储过程的 "worksheet" 迁移到这个 c#/mvc/breeze/angular 项目。存储过程 return 是一个常规记录集 - select * 来自我的 table... 它对 return 记录做了几件复杂的事情(不仅仅是基本查询)。 ..
到目前为止,我在 c#/mvc/breeze/angular 项目中看到,他们只使用两种类型的存储过程:一种方式是存储过程是 returning 单个值,另一种方式如果它是 returning 多个 selects 是这样的:select * 来自 table1 select * 来自 table2 select * 来自 table3.
我的问题是:我应该如何开始我的项目(将其添加到这个...)- 我可以使用现有的存储过程还是有一些方法可以将它与 breeze 集成到消除对存储过程的需求...
我看到他们在这个 c#/mvc/breeze/angular 项目上设置了一个 table 样式的工作表(带过滤器),我不能完全按照它进行操作,但它似乎没有命中存储的过程。我是 breeze angular 的新手。
如果我没理解错的话,您希望 breeze 检索存储过程生成的数据。 this answer 有帮助吗?
简而言之,您可以定义将从存储过程中提取的 object 的 class:
internal class RvRDetail
{
public string DistrictName { get; set; }
public string EmployeeName { get; set; }
public string SiteName { get; set; }
public System.DateTime CalendarDate { get; set; }
public string RevenueCategoryName { get; set; }
public decimal TotalRepayment { get; set; }
public decimal TotalRevenue { get; set; }
}
然后在控制器中,只是 运行 你的存储过程就像没有 breeze:
[BreezeController]
public class SeasonlessRvRController : BreezeAbstractApiController
{
// GET: breeze/SeasonlessRvR/RvRData
[HttpGet]
public object RvRData(string districtList="", string showAllPeriods="0")
{
var returnData = _dbContextProvider.Context.Database
.SqlQuery<RvRDetail>("SELECT * from dbo.udf_SeasonlessRvR(@DistrictList, @ShowAllPeriods)",
new SqlParameter("@DistrictList", districtList),
new SqlParameter("@ShowAllPeriods", showAllPeriods))
.ToList();
return returnData;
}
}
当您查询端点时,Breeze 将 return 通过实体管理器进入
因为 breeze 只会 returning plain Javascript Objects,你也可以用 non-breeze api 端点来做到这一点使用 $http.
如果您想要所有花里胡哨的东西(缓存,自动 wiring-up 到其他实体),您将必须创建一个视图并将其像 table 一样包含在您的模型中,使用定义了适当的外键和导航属性。
希望对您有所帮助。