我正在尝试使用MVC制作可下载的曲目。 这是我的代码:
public ActionResult DownloadTrack(int albumid, int trackid)
{
var track = (from x in database.songs
where x.ALBUM_ID == albumid &&
x.TRACK_ID == trackid
select x).First();
Byte[] Song = track.MP3;
return File(Song, ".mp3", "test");
}
当代码到达Byte []时,它说track.MP3 = null 但是,当我查询我的数据库时,它说它已被填满......
答案 0 :(得分:0)
第一个运算符返回序列的第一个元素或与谓词匹配的序列的第一个元素,具体取决于使用的原型。
<强>顺便说一句:强> 如果任何参数为null,则抛出ArgumentNullException。 如果源序列为空或谓词永远不返回true,则抛出InvalidOperationException。
因此,很可能在where子句中使用的标准不会产生任何结果。
建议如下:
a)如果您使用的是MS SQL Server,请使用SQL事件探查器并确保将正确的SQL应用于数据库(从LINQ生成的SQL)
b)建议使用FirstOrDefault,并处理返回的null