在Users
模型中,我有DateTime dtContractStart
和DateTime dtContractEnd
。
在UserModel
模型中,我有String dtContractStart
和String dtContractEnd
。
要使用Linq查询执行字符串转换,我想尝试类似的东西:
DateTime start;
DateTime end;
var users = DB.Users
.Select(user => new UserModel
{
id = user.id,
firstname = user.firstname,
lastname = user.lastname,
dtContractStart = "",
dtContractEnd = "",
}
&& start = user.dtContractStart
&& end = user.dtContractEnd
)
.ToList();
users.ForEach(user =>
user.dtContractStart = start.toString() &&
user.dtContractEnd = end.toString()
);
有可能吗?我找不到好的语法。
答案 0 :(得分:2)
如果您使用的Linq提供程序不接受对ToString
的调用,则可以分两步执行查询,使用AsEnumerable
强制查询执行:
var users = DB.Users
.Where(...) // Whatever filtering clause inside your query
.AsEnumerable() // Force the query execution, switching to Linq to Objects
.Select(user => new UserModel
{
id = user.id,
firstname = user.firstname,
lastname = user.lastname,
dtContractStart = user.dtContractStart.ToString(),
dtContractEnd = user.dtContractEnd.ToString(),
})
.ToList();