Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么不添加相关对象?(实体框架)_C#_Asp.net_Sql Server_Asp.net Mvc_Entity Framework - Fatal编程技术网

C# 为什么不添加相关对象?(实体框架)

C# 为什么不添加相关对象?(实体框架),c#,asp.net,sql-server,asp.net-mvc,entity-framework,C#,Asp.net,Sql Server,Asp.net Mvc,Entity Framework,我有以下代码: 使用(var context=new EF6RecipesContext()) { //添加一个有两张专辑的艺术家 var artist=新艺术家{FirstName=“Alan”,LastName=“Jackson”}; var album1=新相册{AlbumName=“Drive”}; var album2=新专辑{AlbumName=“德克萨斯体育场现场”}; 艺术家。相册。添加(相册1); 艺术家。相册。添加(相册2); context.Artists.Add(arti

我有以下代码:

使用(var context=new EF6RecipesContext())
{
//添加一个有两张专辑的艺术家
var artist=新艺术家{FirstName=“Alan”,LastName=“Jackson”};
var album1=新相册{AlbumName=“Drive”};
var album2=新专辑{AlbumName=“德克萨斯体育场现场”};
艺术家。相册。添加(相册1);
艺术家。相册。添加(相册2);
context.Artists.Add(artist);
//为两位艺术家添加相册
var artist1=新艺术家{FirstName=“Tobby”,LastName=“Keith”};
var artist2=新艺术家{FirstName=“Merle”,LastName=“Haggard”};
var album=新专辑{AlbumName=“Honkytonk University”};
艺人1.专辑。添加(专辑);
艺人2.专辑。添加(专辑);
context.Albums.Add(相册);
SaveChanges();
}
使用(var context=new EF6RecipesContext())
{
Console.WriteLine(“艺术家及其专辑…”);
var-artists=context.artists;
foreach(艺术家中的艺术家)
{
Console.WriteLine(“{0}{1}”,artist.FirstName,artist.LastName);
foreach(艺术家相册中的var相册)
{
Console.WriteLine(“\t{0}”,album.AlbumName);
}
}
Console.WriteLine(“\n流浪汉和他们的艺术家…”);
var albums=context.albums;
foreach(相册中的var相册)
{
Console.WriteLine(“{0}”,album.AlbumName);
foreach(专辑中的var艺术家。艺术家)
{
Console.WriteLine(“\t{0}{1}”,artist.FirstName,artist.LastName);
}
}
}
我的程序得到以下结果(请参见屏幕截图):

书中有一个不同的结果

作者解释:

接下来,我们创建并初始化艺术家实体类型的两个实例和相册实体类型的>实例。因为两位艺术家在相册上进行了协作,所以我们>将相册添加到两位艺术家的相册导航属性(类型为>EntityCollection)。将相册添加到数据库上下文会导致艺术家获得 也增加了


如果我们添加了这张专辑(“Honkytonk University”),它应该会自动添加2位相关艺术家(“Tobby”和“Merle”)。但它们不会被添加(我在数据库中查找)。为什么?

试试context.Artists.Add(artist1);context.Artists.Add(artist2)而不是context.Albums.Add(album)放在context.SaveChanges()之前是的。谢谢你的回答。这是可行的,但为什么不能作为作者的书的例子呢?不知道为什么这个例子不起作用,但是你不能为你的环境中不存在的艺术家添加一张专辑