在昨天的一次会议上,我了解到将数据库置于源代码控制中的重要性。他们向我们展示了如何创建一个新的数据库项目并导入数据库。
我想知道的是如何更改在实体框架上运行的现有项目以利用数据库项目的功能?架构更新一直是通过使用实体框架迁移来完成的。我知道数据库项目将能够为我部署数据库更新并将这些更新脚本保存到源代码管理中,但我想保留实体框架来查询我的数据(如果这有任何意义的话)。
是否可以(或什至:推荐)使用 Entity Framework 访问数据库但使用 Visual Studio 中的数据库项目管理数据库?你怎么看?
我试过搜索类似的问题并使用 Google 来查找其他人是否有同样的问题,但到目前为止还没有骰子。
我还应该声明我正在考虑在其中也有存储过程的数据库中使用它。这些根本不是通过实体框架控制的,因此还没有进行源代码控制。
感谢您的时间。
我使用 OData v7.1 创建了一个新的 .NET Core 2.2 Web 应用程序。
我已经启动并运行了它,并且已经可以使用 $top、$skip...
我现在正试图让 $count 正常工作,但我完全不知道如何去做。
我已经尝试过以下几个链接,所有这些链接要么不再编译,要么不产生我想要的结果。
我拥有的 :
在StartUp.cs中
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller}/{action=Index}/{id?}");
routes.EnableDependencyInjection();
routes.Expand().Select().OrderBy().Filter().MaxTop(null).Count();
});
Run Code Online (Sandbox Code Playgroud)
在我的控制器类中:
[EnableQuery]
[HttpGet("[action]")]
public IActionResult All()
{
var assets = _service.GetAllAssets();
return Ok(assets);
}
Run Code Online (Sandbox Code Playgroud)
这会返回所有资产,我可以使用 $top 和 $skip 没有问题。现在我如何添加 $count=true 或任何其他允许我返回总计数的方法?我究竟做错了什么?
有效的示例网址: http://localhost/api/Assets/All ?$top=20&$skip=20
不起作用的网址: http://localhost/api/Assets/All ?$count=true (它返回所有资产)
目前的结果是:
[{Item One}, {Item Two}]
Run Code Online (Sandbox Code Playgroud)
我想要的结果是:
[Count : 4,
Items: [{Item One}, {Item Two}
]
Run Code Online (Sandbox Code Playgroud)