所以如果我想在我的网站上添加一个艺术家,我会创建一个包含该模型的模型以及一些其他细节,如:
namespace SuperMusic.Models
{
public artist NewArtist { get; set; }
public IEnumerable<RecordCompanies> RecordCompanies
{
get { //some code to populate possible record companies }
}
现在我可以创建一个新的艺术家,我的模型可以填充艺术家可以关联的唱片公司。
但在我的控制器中,我必须定义“新艺术家”。我相信有两种方法可以做到这一点:
newArtistModel.NewArtist = context.artist.Create();
newArtistModel.NewArtist = new artist();
其中一个比另一个更正确吗?或者代码中是否存在差异,其中一个是不正确的?
再次感谢您回答我的noob问题!
答案 0 :(得分:1)
第一个选项newArtistModel.NewArtist = context.artist.Create();
是创建新实例的正确方法,因为Context
将创建实体框架感知代理对象。
代理对象提供对导航属性等的完全支持。
有一个更完整的答案here
答案 1 :(得分:0)
此艺术家正在用于视图,因此只需要渲染表单。不需要EF上下文。
所以在初始化视图时:
newArtistModel.NewArtist = new artist();
然后,当您发布表单并想要保存艺术家时,您将需要上下文并可以使用:context.artist.Create();