gpt4 book ai didi

asp.net-mvc - 通过 Entity Framework 获取表的最新记录

转载 作者:行者123 更新时间:2023-12-05 08:44:14 26 4
gpt4 key购买 nike

我正在使用 EntityFramework 的代码优先功能,并且我已经使用该字段创建了一个模型类,该字段具有自己的属性(我在这里没有提及它们!):

public class Portrait
{
private Guid _id;
private string _aboutimage;
private string _aboutMe;
private string _mainMenu;
private string _headerImage;
private string _resume;
private string _showpiece;
private string _siteMenu;
private string _adminMenu;
}

对于这个类的每个部分,我都有单独的 ViewModel,例如我有 AboutViewModel 来更新管理部分的 About 并在网站的关于页面中导航:

public class AboutViewModel
{
public Guid Id { get; set; }
public string AboutText { get; set; }
public string Image { get; set; }
}

现在,当我更新 AboutViewModel 时,数据库中的 Portrait 表将创建一条包含关于文本的记录(其他字段将为空)

并且为了更新此表的其他部分,如 Resume 或其他部分,它将生成另一条包含更新和插入字段的记录(现在此记录中有关文本的内容将为空!)

现在我有几条记录,如何才能让 about 字段在 UI 中显示它!?我不想也不能通过 ID 获取这些字段,因为我总是希望他们的最新更新显示在网站上,我写的是这样的,我获取关于文本的关于操作是这样的:

public ViewResult About()
{
var about= _portraitRepository.GetContent();

return View(about);
}

GetContent() 是这样的:

public Portrait GetContent()
{
return _siteContext.Portraits.Find();
}

但是不起作用,我得到了这个错误:

The number of primary key values passed must match number of primary key values defined on the entity. Parameter name: keyValues

我走错方向了吗?请问我该如何解决这个问题?

最佳答案

另一种选择是获取 Portrait 表的 Id 的最大值如果它是标识列

操作如下所示。

public ActionResult About()
{
var about= _portraitRepository.GetLatest();
}

存储库如下所示。

public Portrait GetLatest()
{
var latestId = _siteContext.Portraits.Max(p => p.Id);
return _siteContext.Portraits.Find(latestId);
}

关于asp.net-mvc - 通过 Entity Framework 获取表的最新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14831834/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com