0

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()
);

出来ますか?良い構文が見つかりません。

4

1 に答える 1

2

使用している Linq プロバイダーが への呼び出しを受け入れない場合は、クエリの実行を強制するためToStringに を使用して、2 つの手順でクエリを実行できます。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 に答える