Reputation: 45
I have two linq queries in my controller that are both designed to return a string. However, my view displays the entire SQL query generated from the Linq query.
Model:
public class DummyClass
{
public string myMessage { get; set; }
public string myInitials { get; set; }
}
Controller:
public ActionResult EmployeeSignature()
{
using (MessageInfo db = new MessageInfo())
{
var message = db.SiteMessage_MyPay
.Where(x => x.active)
.Select(x => x.msgText).ToString();
using (DocumentReviewed database = new DocumentReviewed())
{
var document = database.Document_Reviewed
.Where(x => x.FileNumber == "whatever")
.Select(x => x.Initials).ToString();
var model = new DummyClass()
{
myMessage = message,
myInitials = document
};
return View(model);
}
}
}
View:
@model MyPayTC.Models.DummyClass
@{
ViewBag.Title = "EmployeeSignature";
}
@Model.myInitials
@Model.myMessage
Website displays:
SELECT [Extent1].[Initials] AS [Initials]
FROM [dbo].[Document_Reviewed] AS [Extent1]
WHERE '105057' = [Extent1].[FileNumber]
Upvotes: 1
Views: 108
Reputation: 2897
Instead of using .ToString( )
, you should use .FirstOrDefault()
, ToList()
, etc like this:
var message = db.SiteMessage_MyPay
.Where(x => x.active)
.Select(x => x.msgText).FirstOrDefault();
Or, if you want to retrieve some columns, you can use ToArray()
or ToList()
.
Upvotes: 2