【发布时间】:2014-01-20 14:03:49
【问题描述】:
我有一个名为 zeekuser 的用户表,其中存储了与用户相关的时区信息。在使用下面的代码检索我时,
var v = (from s in dc.UserWebSites
join zk in dc.ZeekUsers on s.aspnet_User.UserId equals zk.UserId
where s.aspnet_User.LoweredUserName.Equals(strUsername.ToLower())
select new UserWebSiteInfo
{
CreateDt = TimeZoneInfo.ConvertTimeFromUtc(s.CreateDt, TimeZoneInfo.FindSystemTimeZoneById(zk.TimeZoneID)),
LastUpdateDt = TimeZoneInfo.ConvertTimeFromUtc(s.LastUpdate, TimeZoneInfo.FindSystemTimeZoneById(zk.TimeZoneID)),
LogoImage = s.LogoImage,
Nickname = s.Nickname,
Title1 = s.Title1,
Title2 = s.Title2,
SiteID = s.SiteID.ToString(),
TemplateID = s.TemplateID.ToString(),
TemplateName = s.WebSiteTemplate.ThemeName,
IsActive = s.IsActive,
IsRedirect = s.IsRedirect,
RedirectURL = s.RedirectURL,
UPID = s.UPID.ToString(),
UserId = s.aspnet_User.UserId.ToString(),
Username = s.aspnet_User.UserName,
UserProductName = s.UserProductDetail.Nickname,
PageCount = s.UserWebSitePages.Count(),
AuthorName = s.AuthorName,
AuthorURL = s.AuthorURL
}).OrderByDescending(y => y.LastUpdateDt);
info = v.ToList();
但我遇到了错误
方法 'System.TimeZoneInfo FindSystemTimeZoneById(System.String)' 没有支持的 SQL 转换。
每个不同的用户可以有不同的时区。我该如何解决这个问题?
【问题讨论】:
-
您需要在客户端而不是服务器上执行此操作。
-
该方法没有SQL方法,所以不能在数据库调用中进行,必须对结果进行转换。
-
@AllanS.Hansen 时区信息在表中。那么如果返回多条记录,我该如何实现呢?
标签: c# sql linq datacontext