0

因此,如果我想将艺术家添加到我的网站,并创建一个包含该艺术家的模型以及一些其他详细信息,例如:

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();

其中一个比另一个更正确吗?还是代码实际上存在差异,其中一个不正确?

再次感谢您回答我的菜鸟问题!

4

2 回答 2

1

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

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

这里有更完整的答案

于 2013-07-23T19:12:43.027 回答
0

This artist is being used for the view, so it is only needed to render the form. There is no need for the EF context.

So when initializing the view:

newArtistModel.NewArtist = new artist();

Then, when you post the form and want to save the artist, you will need the context and can use: context.artist.Create();

于 2013-07-23T19:17:27.027 回答