使用Json方法连接Datetime和string并将结果绑定到dropdownlist

时间:2015-08-05 06:04:10

标签: linq entity-framework

我想在MVC应用程序中连接DateTime字段和字符串字段。 我想要Linq to Entities查询来解决这个问题。这是我在Linq中想要的SQL查询。

Select accountid,TourID, ' ('+ convert(nvarchar(20), fromdate ,105) +')' + purpose as TourDetails 
from Tour
where AccountID=@AccID;

如上面的查询所示,我想连结fromdatepurpose。我想将此查询的结果作为JSON结果传递。

2 个答案:

答案 0 :(得分:1)

这样的事情:

    public class Tour
    {
        public int accountid { get; set; }
        public int TourID { get; set; }
        public DateTime date { get; set; }
        public string purpose { get; set; }
    }

    var t = new List<Tour>
    {
        new Tour
        {
            accountid = 1,
            TourID = 2,
            date = DateTime.Now,
            purpose = "Testing"
        }
    };   


    var output = t.Where(c => c.accountid == accId).Select(k => new
    {
        accountid = k.accountid,
        TourID = k.TourID,
        TourDetails = k.date.ToString() + k.purpose
    }).ToList();

    var o = JsonConvert.SerializeObject(output);

答案 1 :(得分:0)

如果你需要一个ActionResult作为输出的MVC控制器,你可以使用这样的东西:

//here 'context' is your DbContext implementation and Tours is your DbSet.
var TourDetails= context.Tours.Where(t=>t.AccountID==_AccID)
                            .Select(s=>new {
                            AccountID = s.accountid,
                            TourID = s.TourID,
                            //s.fromdate.ToString("yyyyMMddHHmmss") use this to format your date if needed
                            TourDetails = s.fromdate.ToString() + s.purpose
                            })
                            .ToList();

//JsonRequestBehavior.AllowGet only if your not using POST method
return Json(TourDetails, JsonRequestBehavior.AllowGet);