0

Users模型中,我有DateTime dtContractStartDateTime dtContractEnd

UserModel模型中,我有String dtContractStartString 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()
);

是否可以?我找不到好的语法。

4

1 回答 1

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();
于 2012-11-27T12:42:47.720 回答