具有单实体管理器的多个微风控制器

时间:2015-03-24 22:04:01

标签: breeze

我使用Breeze进行大型商业应用程序,我有单个api控制器

[BreezeController]
public class BreezeController : ApiController
{

但行数增长(达到600林)......带来可维护性问题

我想使用单个实体管理器,用于客户端缓存服务。我怎么能管理它...帮助PLZ!

1 个答案:

答案 0 :(得分:0)

对于我最大的实体管理器,我使用元数据功能使控制器成为部分类,并根据内容将查询方法放在单独的文件中:

一个文件(称为DatamartController.cs):

public partial class DatamartController : ApiController
  {
    readonly EFContextProvider<DatamartContext> _contextProvider =
       new EFContextProvider<DatamartContext>();

    [HttpGet]
    public string Metadata()
    {
        return _contextProvider.Metadata();
    }
}

另一个文件(我称之为网络表的Networking.cs):

 public partial class DatamartController
 {
    [HttpGet]
    [BreezeQueryable]
    public IQueryable<TPv2.Models.IPAddress> IPAddresses()
    {
        IQueryable<TPv2.Models.IPAddress> list =
            _contextProvider.Context.IPAddresses.Where(p => !p.DeletedFlag);
        return list;
    }
 }