私は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
し、Webサイトのページについてナビゲートする必要があります。
public class AboutViewModel
{
public Guid Id { get; set; }
public string AboutText { get; set; }
public string Image { get; set; }
}
これで、データベースのテーブルを更新するとAboutViewModel
、Portrait
テキストに関するレコードが作成されます(他のフィールドはnullになります)
そして、他のようなこのテーブルの他の部分を更新するために、Resume
更新され挿入されたフィールドを持つ別のレコードが生成されます(このレコードのテキストに関するものはnullになります!)
いくつかのレコードがあるので、UIに表示するaboutフィールドを取得するにはどうすればよいですか?私はこれらのフィールドをIDで取得したくないし、IDで取得することもできません。これは、常に最新の更新をWebサイトに表示したいためです。私が書いたものは次のとおりです。テキストについて取得するためのアクションについては、次のようになります。
public ViewResult About()
{
var about= _portraitRepository.GetContent();
return View(about);
}
そして、GetContent()
これはこのようなものです:
public Portrait GetContent()
{
return _siteContext.Portraits.Find();
}
しかし、動作せず、このエラーが発生しました:
渡される主キー値の数は、エンティティで定義されている主キー値の数と一致する必要があります。パラメータ名:keyValues
私は間違った方向にいますか?どうすればこの問題を解決できますか?