C# SQL到Linq数据时间
访问dateReceived时,我得到的值为C# SQL到Linq数据时间,c#,linq,entity-framework,C#,Linq,Entity Framework,访问dateReceived时,我得到的值为 var oList = from oCI in db.clients where oCI.ClientRef == 20 select new { id = oCI.id, dateReceived = oCI.dateReceived, }; 而不是 /Date(134247
var oList = from oCI in db.clients
where oCI.ClientRef == 20
select new
{
id = oCI.id,
dateReceived = oCI.dateReceived,
};
而不是
/Date(1342479600000)/
存储在数据库中
有人能帮忙吗
班级
2012-07-17 00:00:00.000
请改为尝试oCI.dateReceived.Value.Date。以下内容可能会有所帮助: oCI.dateReceived.ToLongDateString() System.DateTime方法(LINQ到SQL)
您的问题不是从数据库获取日期,而是如何查看结果 将日期序列化为json字符串时,将获得下一个字符串
public partial class client
{
public int id { get; set; }
public long ClientRef { get; set; }
public DateTime dateReceived { get; set; }
}
它的正确序列化日期。对于“从此日期对象获取”,您可以使用如下示例正则表达式
/Date(1342479600000)/
注意:我认为最好是在调试器中监视值,或者在客户端发送日期的字符串表示,或者可能是unixtimestap
var serializedDate = "/Date(1342479600000)/";
var date = new Date(parseInt(serializedDate.match(/Date\((\d+)\)/)[1],10));
上面的返回日期是一个字符串,它可以工作 LINQ to实体中不支持指定的类型成员“日期”。只支持初始值设定项、实体成员和实体导航属性。哦,好的,谢谢你让我知道。我以为是。。。对不起!!如果使用EntityFunctions.TruncateTime(oCI.dateReceived.Value),会怎么样?但是你会浪费时间……我认为你遇到的问题可能与JSON有关,而不是查询本身。你如何序列化它?如果您使用的是System.Web.Script.Serialization.JavaScriptSerializer,那么问题可能就在这里。。您可能需要使用Newtonsoft.Json.JsonConvert.SerializeObject,而不是您可以提供
oCI
类声明吗?什么类型的oCI.dateReceived
?它被选为新对象无需定义类oCI
是db.client中的项。它不是选定的匿名对象。请删除.Value并从EF返回可为空的日期时间,并让使用者自己检查可为空性/值。我们在这里假设您已将DateReceive映射为DateTime?而不是一些数字类型。你在哪里看到你得到的值?它是否显示在文本框中?您正在调试器中查看它吗?这看起来像一个Unix时间戳。如果你只做第一部分,它就不起作用了???(添加ToString)var oList=(从db.clients中的oCI中选择新的{id=oCI.id,dateReceived=oCI.dateReceived.ToString(),})。ToList()
var oList = (from oCI in db.clients
where oCI.ClientRef == 20
select new
{
id = oCI.id,
dateReceived = oCI.dateReceived,
}).ToList().Select(o => new
{
id = o.id,
status = o.dateReceived.ToString()
});