我有 3 個表是文章、評論和影像:
create table article (
id int not null auto_increment,
views int default null,
title varchar(255) not null,
status tinyint default 1,
content text default null,
created_date datetime default null,
updated_date datetime default null,
created_by int default null,
updated_by int default null,
primary key (id)
);
create table comment (
id int not null auto_increment,
content text default null,
favorite int default null,
created_date datetime default null,
updated_date datetime default null,
created_by int default null,
updated_by int default null,
article_id int default null,
primary key (id)
);
create table image (
id int not null auto_increment,
id_obj int default null,
url varchar(255) not null,
thumbnail tinyint default null,
type varchar(50) default null,
primary key (id)
);
這是我的資料庫圖:

影像表與文章表和評論表沒有外鍵。影像表有兩列:id_obj和type。當我保存id_obj = 2和type = comment 時,它是評論表的平均記錄 ID 2。相反,id_obj = 3和type = article,它是文章表的平均記錄 id 3。如何為可以添加和保存影像到影像表的文章創建 POST 方法?我嘗試創建但只能將資料保存到資料庫而沒有影像。
這是界面:
public interface IArticleService
{
public Task<int> Create(ArticleRequest request);
}
這是服務:
public class ArticleService : IArticleService
{
private readonly DbContext _context;
public ArticleService(DbContext context)
{
_context = context;
}
public async Task<int> Create(ArticleRequest request)
{
var article = new Articles()
{
Views = request.Views,
Title = request.Title,
Status = request.Status,
Content = request.Content,
CreatedDate = request.CreatedDate,
UpdatedDate = request.UpdatedDate,
CreatedBy = request.CreatedBy,
UpdatedBy = request.UpdatedBy
};
_context.Articles.Add(article);
return await _context.SaveChangesAsync();
}
}
這是 Post 方法:
[HttpPost]
public async Task<IActionResult> Create([FromBody] ArticleRequest request)
{
var status = await _articleService.Create(request);
return Ok(status);
}
期待收到答案,或類似的帖子。
uj5u.com熱心網友回復:
可能缺少一些細節,但從您提供的資訊來看,由于您的表未“連接”,因此僅說是不夠的
public async Task<int> Create(ArticleRequest request)
{
var article = new Articles()
{
Views = request.Views,
Title = request.Title,
Status = request.Status,
Content = request.Content,
CreatedDate = request.CreatedDate,
UpdatedDate = request.UpdatedDate,
CreatedBy = request.CreatedBy,
UpdatedBy = request.UpdatedBy
};
_context.Articles.Add(article);
return await _context.SaveChangesAsync();
}
你需要一些類似的東西
public async Task<int> Create(ArticleRequest request)
{
var article = new Articles()
{
Views = request.Views,
Title = request.Title,
Status = request.Status,
Content = request.Content,
CreatedDate = request.CreatedDate,
UpdatedDate = request.UpdatedDate,
CreatedBy = request.CreatedBy,
UpdatedBy = request.UpdatedBy
};
_context.Articles.Add(article);
var image = new Image()
{
SomeImageProperty = request.someImageProperty,
.
.
.
};
_context.Images.Add(image);
return await _context.SaveChangesAsync();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/392605.html
上一篇:是否可以將List<T>屬性與get一起使用,但不允許直接向其中添加專案?[復制]
下一篇:特定CMD命令列的c#問題
