14

我正在使用实体框架代码优先开发 WCF RESTful Web 服务。

我有一张Users有很多列的表。我这样做是为了获取特定用户:

context.Configuration.ProxyCreationEnabled = false;
var users = from u in context.Users
            where u.UserId == userId
            select u;

在这个表上,有一个密码列,我不想返回这个列。

如何从该选择中排除密码列?

4

4 回答 4

11

说起来很难过,但

您没有直接排除任何特定列的选项。您可以使用延迟加载列。

最简单且不喜欢的方法是包含您想要的列。

于 2013-10-19T06:34:37.923 回答
2

像这样的另一种方式,

   var users = from u in context.Users
                where u.UserId == userId
                select new 
                {
                    col1 = u.UserId, 
                    col2 = u.Watever
                }.ToList();
于 2013-10-19T10:16:57.577 回答
1

在 select 语句中指定您想要的每一列:

var users = from u in context.Users

        where u.UserId == userId

        select u.UserId, u.Watever, etc... ;
于 2013-10-19T06:34:27.777 回答
0

您可以为每个表创建多个 LINQ 对象。我会创建一个包含您需要的字段和一个没有的字段。但是,它使 CRUD 操作更加困难。

于 2016-06-16T19:09:01.110 回答