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 一样包含在您的模型中,使用定义了适当的外键和导航属性。

希望对您有所帮助。