Ich listet einige Daten aus meiner SQL Server-Datenbank in einer Tabelle mit MVC auf. Was ich brauche, ist nur die Daten anzeigen zu können, bei denen die Benutzer-ID gleich dem tatsächlich authentifizierten Benutzer ist.MVC LINQ, wobei Benutzer-ID dem authentifizierten Benutzer entspricht
Das ist, was ich in dieser Zeit gemacht haben:
public class ManageViewModel
{
public string FileName { get; set; }
public string ContentType { get; set; }
public string Format { get; set; }
}
Meine Ansicht:
@model IEnumerable<Transcode.Models.ManageViewModel>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<table style="width:100%">
<tr>
<th>File Name</th>
<th>Actual Format</th>
<th>Requested Format</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.FileName</td>
<td>@item.ContentType</td>
<td>@item.Format</td>
</tr>
}
</table>
mein Controller und LINQ-Abfrage:
public class ManageController : Controller
{
ApplicationDbContext db = new ApplicationDbContext();
public ActionResult Index()
{
var Model = from file in db.Conversions
join codec in db.Codecs on file.CodecID equals codec.CodecID
where file.UserID.Equals(User.Identity.IsAuthenticated)
select new ManageViewModel
{
FileName = file.FileName,
ContentType = file.ContentType,
Format = codec.Format
};
return View(Model);
}
}
Ich erhalte die folgenden Fehler in meinem @foreach (var Artikel in Model):
Eine Ausnahme vom Typ 'System.NotSupportedException' in EntityFramework.SqlServer.dll aufgetreten, wurde aber nicht in Benutzercode Zusätzliche Informationen behandelt: Es konnte kein konstanter Wert vom Typ 'System.Object' erstellt werden. In diesem Kontext werden nur primitive Typen oder Aufzählungstypen unterstützt.
Vielen Dank! Funktioniert perfekt! Eigentlich ist meine UserID ein String und kein Int, also muss ich die UserID nicht analysieren. – Huby03
Cool, dann ist es noch einfacher. –