ASP.NET模型 - 最佳空对象创建?

时间:2013-07-23 19:04:15

标签: asp.net-mvc entity-framework asp.net-mvc-4

所以如果我想在我的网站上添加一个艺术家,我会创建一个包含该模型的模型以及一些其他细节,如:

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问题!

2 个答案:

答案 0 :(得分:1)

第一个选项newArtistModel.NewArtist = context.artist.Create();是创建新实例的正确方法,因为Context将创建实体框架感知代理对象。

代理对象提供对导航属性等的完全支持。

有一个更完整的答案here

答案 1 :(得分:0)

此艺术家正在用于视图,因此只需要渲染表单。不需要EF上下文。

所以在初始化视图时:

newArtistModel.NewArtist = new artist();

然后,当您发布表单并想要保存艺术家时,您将需要上下文并可以使用:context.artist.Create();