小编Sér*_*eno的帖子

在Mac上的VS(DotNet Core 2)上使用Migration CLI更新数据库

我在VS for Mac上创建了数据库模型,并使用终端进行了迁移:

dotnet ef migrations add IntitialMigration
Run Code Online (Sandbox Code Playgroud)

然后,我更新了数据库:

dotnet ef database update
Run Code Online (Sandbox Code Playgroud)

但是在更改模型并创建另一个迁移之后:

dotnet ef migrations add SecondMigration
Run Code Online (Sandbox Code Playgroud)

并尝试更新数据库:

dotnet ef database update SecondMigration
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

数据库中已经有一个名为“电子邮件”的对象。

我进行了搜索,发现了一个可能的解决方案:

Add-Migration SecondMigration -IgnoreChanges
Run Code Online (Sandbox Code Playgroud)

但这仅适用于Windows上的PMC。我在Mac上使用VS,并且所有命令都在Terminal上键入。有人知道更改模型后如何使用迁移来更新数据库吗?

database migration command-line-interface .net-core visual-studio-mac

5
推荐指数
1
解决办法
2686
查看次数

Dotnet Core API - 获取控制器方法的 URL

我正在开发一个 API,它有两个控制器:PicturesControllerAccountController。有一个方法PicturesController可以返回图像,我想知道如何获取它的 URL。

在另一种PicturesController方法中,我使用以下代码获取了 URL:

var url = Url.RouteUrl("GetPicture", new { id = picture.Id }, Request.Scheme);
Run Code Online (Sandbox Code Playgroud)

但我需要从另一个控制器 ( ) 获取相同方法的 URL AccountController

我尝试了以下代码,但结果为空。

var url = Url.Action("GetPicture", "PicturesController", new { id = picture.Id }, Request.Scheme);
Run Code Online (Sandbox Code Playgroud)

这就是方法:

public class PicturesController : Controller
{
  ...

   // GET api/pictures/id
    [HttpGet("{id}", Name = "GetPicture")]
    public async Task<ActionResult> Get(Guid id)
    {
        var picture = await _context.Pictures.FirstOrDefaultAsync(p => p.IsActive() && p.Id == id);

        if (picture == null) …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-web-api .net-core

5
推荐指数
1
解决办法
5690
查看次数

实体框架核心:脚手架,避免更改模型/实体后数据丢失

我有以下模型:

public class Promotion : BaseModel
{
    [Required]
    public string Description { get; set; }

    [Required]
    public string Market { get; set; }

    [Required]
    public double Price { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

它已创建一个已更新到数据库的迁移。并且一些促销已插入数据库中。但是我需要将促销模型更改为:

public class Promotion : BaseModel
{
    [Required]
    public string Description { get; set; }

    [Required]
    public Market Market { get; set; }

    [Required]
    public double Price { get; set; }
}

public class Market : BaseModel
{
    [Required]
    public string Name { get; set; } …
Run Code Online (Sandbox Code Playgroud)

scaffolding entity-framework-core asp.net-core

2
推荐指数
1
解决办法
3181
查看次数