這是我的服務:
var news = new News()
{
Views = request.Views,
Title = request.Title,
Status = request.Status,
Content = request.Content,
CreatedDate = request.CreatedDate,
UpdatedDate = request.UpdatedDate,
CreatedBy = request.CreatedBy,
UpdatedBy = request.UpdatedBy
};
_freedomContext.News.Add(news);
var image = new Image()
{
IdObj = request.IdObj,
Url = request.Url,
Thumbnail = request.Thumbnail,
Type = "news"
};
_freedomContext.Images.Add(image);
return await _freedomContext.SaveChangesAsync();
當我在新聞表中創建新記錄時,如何設定IdObj是新聞的id?示例:當我創建id = 10 的新聞時,影像的平行IdObj =10。
uj5u.com熱心網友回復:
您必須在代碼中進行以下更改:
var news = new News()
{
Views = request.Views,
Title = request.Title,
Status = request.Status,
Content = request.Content,
CreatedDate = request.CreatedDate,
UpdatedDate = request.UpdatedDate,
CreatedBy = request.CreatedBy,
UpdatedBy = request.UpdatedBy
};
_freedomContext.News.Add(news);
//add below line so you can get news last saved id and you can use that id to save into image table.
await _freedomContext.SaveChangesAsync();
var image = new Image()
{
IdObj = news.Id, //Changes
Url = request.Url,
Thumbnail = request.Thumbnail,
Type = "news"
};
_freedomContext.Images.Add(image);
return await _freedomContext.SaveChangesAsync();
uj5u.com熱心網友回復:
通常,您應該擁有具有將實體鏈接在一起的屬性的類:
class News {
public ICollection<Image> Images {get;set;} = new()(
...
class Image {
public News News {get;set;}
}
在這種情況下,一個新聞有多個影像
您可以構建整個物件的相關圖并要求 EF 保存它:
var n = new News { ... }
n.Images.Add(new Image {...});
context.News.Add(n);
context.SaveChanges();
EF 將能夠看到新的 Image 并知道它與哪個 News 相關,因為它存盤在 n.Images 串列中。當它保存資料時,它會自動獲取ID并進行鏈接。您不必手動完成所有這些操作,一次保存一件事,將其 ID 拉出,將其設定在其他地方,然后再次保存..
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/395565.html
