EF5将返回列表<string>转换为其正确类型</string>

时间:2012-12-19 15:39:24

标签: c# linq entity-framework

使用Entity Framework 5时,以下代码无效,因为我正在尝试将List<string>转换为List<TRK_USER>。有道理。

List<TRK_USER> userList = db.TRK_USER.Select(t => t.USER_FIRST).ToList();

但是,我想维护TRK_USER对象的类型。我希望/期望的是我可以将List<string>转换为List<TRK_USER>,并为所有缺失的属性获取空值。所以在这种情况下,我会有一个List<TRK_USER>,其中只有USER_FIRST填充了数据。这有可能通过一些神奇的扩展方法吗?

2 个答案:

答案 0 :(得分:2)

假设TRK_USER有一个无参数构造函数,你可以这样做:

List<TRK_USER> userList = db.TRK_USER
            .Select(t => new TRK_USER{ USER_FIRST = t.USER_FIRST})
            .ToList();

但你为什么要这样做?

List<string> userFirstNamesList = db.TRK_USER
            .Select(t => t.USER_FIRST)
            .ToList();

会提供完全相同的信息,只是没有不必要的开销。

答案 1 :(得分:1)

试试这个:

List<TRK_USER> userList =
      db.TRK_USER
            .Select(t => new TRK_USER{USER_FIRST = t.USER_FIRST})
            .ToList();