我想知道程序在哪里生成AlbumId? 一开始我尝试使用SQL Server Compact Edition,但错误页面说“无法找到所请求的.Net Framework数据提供程序”等等等等...... 我无法继续。
然后我下载了整个MVCMusicStore代码并将数据库添加到“App_Data”文件夹,更改了Web.config文件中的connectionStrings。有用。 我检查了数据库表,他们已经设置了ID(AlbumId,GenreId等)。 他们手动设置了这些ID吗?
但后来我试图建立一个基于它的新网站。这次我使用的是SQL Server Compact Edition,我下载了4.0版本以使其正常工作。 我在做“详细信息”页面... 让我引用教程中的一些内容......
“我们将对/ store / Details / [id] URL进行相同的更改,并使用数据库查询替换我们的虚拟数据,该数据库查询会加载ID与参数值匹配的相册。”
public ActionResult Details(int id)
{
var album = storeDB.Albums.Find(id);
return View(album);
}
ID来自哪里? 用于初始化Albums的SampleData.cs没有设置我确定的id,这里是SampleData.cs的一些代码
new List<Album>
{
new Album { Title = "A Copland Celebration, Vol. I", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Aaron Copland & London Symphony Orchestra"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Worlds", Genre = genres.Single(g => g.Name == "Jazz"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Aaron Goldberg"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "For Those About To Rock We Salute You", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "AC/DC"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
...
};
答案 0 :(得分:1)
该列在数据库中设置为Identity Column。基本上它从1开始,每次插入时ID都会增加(无论如何都是默认行为,可以自定义)。
答案 1 :(得分:0)
最有可能的SQL表为此列设置了default
。